Merge branch 'dev-v3-audit-style' into dev-v3

This commit is contained in:
Ima Mechanique 2013-07-16 14:04:50 +01:00
commit e08b64474d
28 changed files with 2524 additions and 2299 deletions

View file

@ -1,22 +1,60 @@
namespace LSLEditor
{
partial class About
/// <summary>
/// About dialogue box form.
/// </summary>
public partial class About
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Container for LSLife picture.
/// </summary>
private System.Windows.Forms.PictureBox pictureBox1;
/// <summary>
/// Container to hold all the elements.
/// </summary>
private System.Windows.Forms.GroupBox groupBox1;
/// <summary>
/// OK Button.
/// </summary>
private System.Windows.Forms.Button button1;
/// <summary>
/// Web Browser.
/// </summary>
private System.Windows.Forms.WebBrowser webBrowser1;
/// <summary>
/// Link label.
/// </summary>
private System.Windows.Forms.LinkLabel linkLabel1;
/// <summary>
/// Version label.
/// </summary>
private System.Windows.Forms.Label label1;
/// <summary>
/// LSL Editor label.
/// </summary>
private System.Windows.Forms.Label label2;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
/// <param name="disposing">True if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
if (disposing && (this.components != null)) {
this.components.Dispose();
}
base.Dispose(disposing);
}
@ -133,13 +171,5 @@ namespace LSLEditor
}
#endregion
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.WebBrowser webBrowser1;
private System.Windows.Forms.LinkLabel linkLabel1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
}
}

View file

@ -42,18 +42,23 @@
// ********
// */
using System;
using System.ComponentModel;
using System.IO;
using System.Reflection;
using System.ComponentModel;
using System.Windows.Forms;
namespace LSLEditor
{
/// <summary>About dialogue box form.</summary>
public partial class About : Form
{
/// <summary>
/// Initialises a new instance of the <see cref="About" /> class.
/// </summary>
/// <param name="parent">The parent form.</param>
public About(LSLEditorForm parent)
{
InitializeComponent();
this.InitializeComponent();
this.Icon = parent.Icon;
@ -61,20 +66,35 @@ namespace LSLEditor
this.label2.Text = strVersion;
}
/// <summary>
/// OK/Close button.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
/// <summary>
/// Link to SourceForge page.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(Properties.Settings.Default.ContactUrl);
}
/// <summary>
/// Loads the page.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void About_Load(object sender, EventArgs e)
{
string strExeFileName = Path.GetFileName(Assembly.GetExecutingAssembly().CodeBase);
this.webBrowser1.Navigate("res://" + strExeFileName + "/"+ Properties.Settings.Default.About);
this.webBrowser1.Navigate("res://" + strExeFileName + "/" + Properties.Settings.Default.About);
}
}
}

View file

@ -69,46 +69,37 @@ namespace LSLEditor
{
WebBrowser axWebBrowser1 = sender as WebBrowser;
ToolStripStatusLabel status = axWebBrowser1.Tag as ToolStripStatusLabel;
if (status == null)
return;
if (status != null) {
status.Text = axWebBrowser1.StatusText;
}
}
private void axWebBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
string strUrl = e.Url.ToString();
if (strUrl.EndsWith(".lsl"))
{
if (strUrl.EndsWith(".lsl")) {
e.Cancel = true;
if (MessageBox.Show("Import LSL script?", "Import script", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
return;
if (MessageBox.Show("Import LSL script?", "Import script", MessageBoxButtons.OKCancel) != DialogResult.Cancel) {
WebBrowser axWebBrowser1 = sender as WebBrowser;
axWebBrowser1.Stop();
this.lslEditorForm.OpenFile(strUrl,Guid.NewGuid());
this.lslEditorForm.OpenFile(strUrl, Guid.NewGuid());
}
}
}
public void ShowWebBrowser(string strTabName, string strUrl)
{
WebBrowser axWebBrowser1 = null;
try
{
if (!Properties.Settings.Default.HelpNewTab)
{
try {
if (!Properties.Settings.Default.HelpNewTab) {
TabPage tabPage = this.tabControl1.TabPages[0];
tabPage.Text = strTabName + " ";
axWebBrowser1 = tabPage.Controls[0] as WebBrowser;
}
}
catch
{
}
} catch { }
if (axWebBrowser1 == null)
{
if (axWebBrowser1 == null) {
TabPage tabPage = new TabPage(strTabName + " ");
tabPage.BackColor = Color.White;
@ -117,7 +108,7 @@ namespace LSLEditor
ToolStripStatusLabel toolStripStatusLabel1 = new ToolStripStatusLabel();
StatusStrip statusStrip1 = new StatusStrip();
statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripStatusLabel1});
statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripStatusLabel1 });
statusStrip1.Location = new System.Drawing.Point(0, 318);
statusStrip1.Name = "statusStrip1";
statusStrip1.Size = new System.Drawing.Size(584, 22);
@ -148,24 +139,20 @@ namespace LSLEditor
private void closeToolStripMenuItem_Click(object sender, EventArgs e)
{
int intTabToClose = (int)this.contextMenuStrip1.Tag;
if (intTabToClose >= this.tabControl1.TabCount)
return;
if (intTabToClose < this.tabControl1.TabCount) {
this.tabControl1.TabPages.RemoveAt(intTabToClose);
}
}
private void tabControl1_MouseDown(object sender, MouseEventArgs e)
{
TabControl tabControl = sender as TabControl;
if (tabControl == null)
return;
if (e.Button == MouseButtons.Right)
{
for (int intI = 0; intI < tabControl.TabCount; intI++)
{
if (tabControl != null) {
if (e.Button == MouseButtons.Right) {
for (int intI = 0; intI < tabControl.TabCount; intI++) {
Rectangle rt = tabControl.GetTabRect(intI);
if (e.X > rt.Left && e.X < rt.Right
&& e.Y > rt.Top && e.Y < rt.Bottom)
{
&& e.Y > rt.Top && e.Y < rt.Bottom) {
this.contextMenuStrip1.Tag = intI;
this.contextMenuStrip1.Show(this.tabControl1, new Point(e.X, e.Y));
}
@ -173,4 +160,5 @@ namespace LSLEditor
}
}
}
}
}

View file

@ -65,18 +65,14 @@ namespace LSLEditor
private const int WM_NCACTIVATE = 0x0086;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_NCACTIVATE)
{
if (m.LParam != IntPtr.Zero)
{
if (m.Msg == WM_NCACTIVATE) {
if (m.LParam != IntPtr.Zero) {
m.WParam = new IntPtr(1);
}
else
{
} else {
this.numberedTextBoxUC1.TextBox.MakeAllInvis();
}
}
try { base.WndProc(ref m); } catch {}
try { base.WndProc(ref m); } catch { }
}
public SyntaxRichTextBox TextBox
@ -123,10 +119,11 @@ namespace LSLEditor
}
set
{
if(value)
if (value) {
this.tabPage1.Text = "Script";
else
} else {
this.tabPage1.Text = "Text";
}
this.TextBox.ToolTipping = value;
}
}
@ -160,12 +157,9 @@ namespace LSLEditor
imageList.Images.Add(new Bitmap(this.GetType(), "Images.States.gif"));
this.tvOutline.ImageList = imageList;
if (lslEditorForm.outlineToolStripMenuItem.Checked)
{
if (lslEditorForm.outlineToolStripMenuItem.Checked) {
splitContainer1.Panel2Collapsed = false;
}
else
{
} else {
splitContainer1.Panel2Collapsed = true;
}
SetFont();
@ -178,9 +172,10 @@ namespace LSLEditor
void EditForm_Layout(object sender, LayoutEventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
if (this.WindowState == FormWindowState.Minimized) {
this.numberedTextBoxUC1.TextBox.MakeAllInvis();
}
}
void EditForm_Position(object sender, EventArgs e)
{
@ -190,13 +185,15 @@ namespace LSLEditor
void TextBox_OnDirtyChanged(object sender, EventArgs e)
{
this.Text = this.ScriptName;
if (this.numberedTextBoxUC1.TextBox.Dirty)
this.Text = this.Text.Trim()+"* ";
else
this.Text = this.Text.Trim()+" ";
if (this.numberedTextBoxUC1.TextBox.Dirty) {
this.Text = this.Text.Trim() + "* ";
} else {
this.Text = this.Text.Trim() + " ";
}
TabPage tabPage = this.Tag as TabPage;
if (tabPage != null)
if (tabPage != null) {
tabPage.Text = this.Text;
}
this.parent.OnDirtyChanged(this.numberedTextBoxUC1.TextBox.Dirty);
}
@ -216,22 +213,21 @@ namespace LSLEditor
{
this.m_FullPathName = value;
string strDirectory = Path.GetDirectoryName(this.m_FullPathName);
if (Directory.Exists(strDirectory))
{
if (Directory.Exists(strDirectory)) {
Properties.Settings.Default.WorkingDirectory = strDirectory;
}
else
{
if(!Directory.Exists(Properties.Settings.Default.WorkingDirectory))
} else {
if (!Directory.Exists(Properties.Settings.Default.WorkingDirectory)) {
Properties.Settings.Default.WorkingDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
}
this.m_FullPathName = Path.Combine(Properties.Settings.Default.WorkingDirectory, this.m_FullPathName);
}
this.Text = this.ScriptName;
TabPage tabPage = this.Tag as TabPage;
if (tabPage != null)
if (tabPage != null) {
tabPage.Text = this.Text + " ";
}
}
}
public string ScriptName
{
@ -263,51 +259,47 @@ namespace LSLEditor
private int PercentageIndentTab()
{
int intResult;
int intSpaces = 0;
int intTabs = 0;
StringReader sr = new StringReader(this.TextBox.Text);
while (true)
{
while (true) {
string strLine = sr.ReadLine();
if (strLine == null)
break;
if (strLine.Length == 0)
continue;
if (strLine[0] == ' ')
if (strLine == null) break;
if (strLine.Length == 0) continue;
if (strLine[0] == ' ') {
intSpaces++;
else if (strLine[0] == '\t')
} else if (strLine[0] == '\t') {
intTabs++;
}
if (intTabs == 0 && intSpaces==0)
return 50;
return (int)Math.Round((100.0 * intTabs) / (intTabs + intSpaces));
}
if (intTabs == 0 && intSpaces == 0) {
intResult = 50;
} else {
intResult = (int)Math.Round((100.0 * intTabs) / (intTabs + intSpaces));
}
return intResult;
}
public void LoadFile(string strPath)
{
if(strPath.StartsWith("http://"))
if (strPath.StartsWith("http://")) {
this.FullPathName = Path.GetFileName(strPath);
else
} else {
this.FullPathName = strPath;
}
this.encodedAs = this.numberedTextBoxUC1.TextBox.LoadFile(strPath);
if (!this.IsScript)
return;
if (this.IsScript) {
if (Properties.Settings.Default.IndentAutoCorrect)
{
if (Properties.Settings.Default.IndentAutoCorrect) {
this.TextBox.FormatDocument();
this.TextBox.ClearUndoStack();
}
else
{
if (Properties.Settings.Default.IndentWarning)
{
} else {
if (Properties.Settings.Default.IndentWarning) {
if ((PercentageIndentTab() > 50 && Properties.Settings.Default.SL4SpacesIndent) ||
(PercentageIndentTab() < 50 && !Properties.Settings.Default.SL4SpacesIndent))
{
if (MessageBox.Show("Indent scheme differs from settings\nDo you want to correct it?\nIt can also be corrected by pressing Ctrl-D or turn on Autocorrection (tools menu)", "Indent Warning!!", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
{
(PercentageIndentTab() < 50 && !Properties.Settings.Default.SL4SpacesIndent)) {
if (MessageBox.Show("Indent scheme differs from settings\nDo you want to correct it?\nIt can also be corrected by pressing Ctrl-D or turn on Autocorrection (tools menu)", "Indent Warning!!", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) {
this.TextBox.FormatDocument();
//this.TextBox.ClearUndoStack();
}
@ -315,15 +307,14 @@ namespace LSLEditor
}
}
}
}
public void SaveCurrentFile(string strPath)
{
this.FullPathName = strPath;
Encoding encodeAs = this.encodedAs;
if (this.IsScript && encodeAs == null)
{
switch (Properties.Settings.Default.OutputFormat)
{
if (this.IsScript && encodeAs == null) {
switch (Properties.Settings.Default.OutputFormat) {
case "UTF8":
encodeAs = Encoding.UTF8;
break;
@ -337,9 +328,7 @@ namespace LSLEditor
encodeAs = Encoding.Default;
break;
}
}
else if (encodeAs == null)
{
} else if (encodeAs == null) {
encodeAs = Encoding.UTF8;
}
@ -381,16 +370,15 @@ namespace LSLEditor
{
this.numberedTextBoxUC1.TextBox.MakeAllInvis();
if (runtime != null)
{
if (runtime != null) {
this.components.Remove(runtime);
if (!runtime.IsDisposed)
if (!runtime.IsDisposed) {
runtime.Dispose();
}
runtime = null;
}
for (int intI = this.tabControl1.TabPages.Count - 1; intI > 0; intI--)
{
for (int intI = this.tabControl1.TabPages.Count - 1; intI > 0; intI--) {
this.tabControl1.TabPages.RemoveAt(intI);
}
}
@ -400,24 +388,20 @@ namespace LSLEditor
public bool StartCompiler()
{
bool blnResult = false;
//if (this.disableCompilesyntaxCheckToolStripMenuItem.Checked)
// return false;
if (!this.IsScript)
return false;
if (this.IsScript) {
StopCompiler();
if (this.parent == null)
return false;
if (this.parent != null) {
runtime = new RuntimeConsole(this.parent);
// for disposing
this.components.Add(runtime);
if (!runtime.Compile(this))
{
if (!runtime.Compile(this)) {
this.tabControl1.SelectedIndex = 0;
return false;
}
@ -426,24 +410,24 @@ namespace LSLEditor
tabPage.Controls.Add(runtime);
this.tabControl1.TabPages.Add(tabPage);
this.tabControl1.SelectedIndex = 1;
return true;
blnResult = true;
}
}
return blnResult;
}
public bool SyntaxCheck()
{
bool blnResult = false;
//if (this.disableCompilesyntaxCheckToolStripMenuItem.Checked)
// return false;
if (!this.IsScript)
return false;
if (this.IsScript) {
LSL2CSharp translator = new LSL2CSharp(ConfLSL);
string strCSharp = translator.Parse(SourceCode);
if (System.Diagnostics.Debugger.IsAttached)
{
for (int intI = this.tabControl1.TabPages.Count - 1; intI > 0; intI--)
{
if (System.Diagnostics.Debugger.IsAttached) {
for (int intI = this.tabControl1.TabPages.Count - 1; intI > 0; intI--) {
this.tabControl1.TabPages.RemoveAt(intI);
}
@ -457,8 +441,9 @@ namespace LSLEditor
tabPage.Controls.Add(numberedTextBoxUC1);
this.tabControl.TabPages.Add(tabPage);
}
return (null != CompilerHelper.CompileCSharp(this, strCSharp));
blnResult = (null != CompilerHelper.CompileCSharp(this, strCSharp));
}
return blnResult;
}
public int Find(string strSearch, int intStart, int intEnd, RichTextBoxFinds options)
@ -476,14 +461,14 @@ namespace LSLEditor
private void EditForm_FormClosing(object sender, FormClosingEventArgs e)
{
this.parent.CancelClosing = false;
if (this.Dirty)
{
if (this.Dirty) {
DialogResult dialogResult = MessageBox.Show(this, @"Save """ + this.ScriptName + @"""?", "File has changed", MessageBoxButtons.YesNoCancel);
if (dialogResult == DialogResult.Yes)
e.Cancel = !this.parent.SaveFile(this,false);
else
if (dialogResult == DialogResult.Yes) {
e.Cancel = !this.parent.SaveFile(this, false);
} else {
e.Cancel = (dialogResult == DialogResult.Cancel);
}
}
this.parent.CancelClosing = e.Cancel;
}
@ -497,11 +482,9 @@ namespace LSLEditor
this.parent.BeginInvoke(new TreeNodeMouseClickEventHandler(
delegate(object sender2, TreeNodeMouseClickEventArgs e2)
{
if (e.Node.Tag is Helpers.OutlineHelper)
{
if (e.Node.Tag is Helpers.OutlineHelper) {
Helpers.OutlineHelper ohOutline = (Helpers.OutlineHelper)e.Node.Tag;
if (ohOutline.line < this.TextBox.Lines.Length)
{
if (ohOutline.line < this.TextBox.Lines.Length) {
//editForm.Focus();
//editForm.TextBox.Select();
//editForm.TextBox.Goto(ohOutline.line + 1);

View file

@ -89,34 +89,31 @@ namespace LSLEditor
set
{
this.label1.Text = ""; // clear out message
if (value != "")
{
if (value != "") {
this.comboBoxFind.Text = value;
}
else
{
if (this.comboBoxFind.Items.Count > 0)
} else {
if (this.comboBoxFind.Items.Count > 0) {
this.comboBoxFind.SelectedIndex = this.comboBoxFind.Items.Count - 1;
}
}
}
}
private bool UpdateComboBox(ComboBox comboBox)
{
string strText = comboBox.Text;
bool Found = false;
foreach (string strC in comboBox.Items)
{
if (strC == strText)
{
foreach (string strC in comboBox.Items) {
if (strC == strText) {
Found = true;
break;
}
}
if (!Found)
if (!Found) {
comboBox.Items.Add(strText);
}
return Found;
}
@ -124,11 +121,8 @@ namespace LSLEditor
{
this.label1.Text = "";
EditForm editForm = this.lslEditForm.ActiveMdiForm as EditForm;
if (editForm == null)
return;
if (!UpdateComboBox(this.comboBoxFind))
{
if (editForm != null) {
if (!UpdateComboBox(this.comboBoxFind)) {
editForm.TextBox.SelectionLength = 0;
editForm.TextBox.SelectionStart = 0;
}
@ -139,27 +133,25 @@ namespace LSLEditor
if (this.checkBoxReverse.Checked) options |= RichTextBoxFinds.Reverse;
if (this.checkBoxWholeWord.Checked) options |= RichTextBoxFinds.WholeWord;
if (this.checkBoxReverse.Checked)
{
if (this.checkBoxReverse.Checked) {
intStart = 0; // start cant change ;-)
intEnd = editForm.TextBox.SelectionStart;
}
else
{
} else {
intStart = editForm.TextBox.SelectionStart + editForm.TextBox.SelectionLength;
if (intStart == editForm.TextBox.Text.Length)
if (intStart == editForm.TextBox.Text.Length) {
intStart = 0;
}
intEnd = editForm.TextBox.Text.Length - 1; // length can change!!
}
string strFind = this.comboBoxFind.Text;
int intIndex = editForm.Find(strFind, intStart, intEnd, options);
if (intIndex < 0)
{
if (intIndex < 0) {
this.label1.Text = "Not found...";
return;
}
}
}
private void FindNext_Click(object sender, EventArgs e)
{
@ -169,15 +161,11 @@ namespace LSLEditor
private void comboBoxFind_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return)
{
if (this.Replace.Enabled)
{
if (e.KeyCode == Keys.Return) {
if (this.Replace.Enabled) {
this.comboBoxReplace.Focus();
e.SuppressKeyPress = true;
}
else
{
} else {
Find();
e.SuppressKeyPress = true;
}
@ -187,13 +175,10 @@ namespace LSLEditor
private void Replace_Click(object sender, EventArgs e)
{
EditForm editForm = this.lslEditForm.ActiveMdiForm as EditForm;
if (editForm == null)
return;
if (editForm != null) {
UpdateComboBox(this.comboBoxReplace);
if (editForm.TextBox.SelectionLength > 0)
{
if (editForm.TextBox.SelectionLength > 0) {
string strReplacement = this.comboBoxReplace.Text;
editForm.TextBox.ReplaceSelectedText(strReplacement);
}
@ -201,16 +186,15 @@ namespace LSLEditor
Find();
this.Focus();
}
}
// WildCardToRegex not used!!
private string WildCardToRegex(string strWildCard)
{
StringBuilder sb = new StringBuilder(strWildCard.Length + 8);
for (int intI = 0; intI < strWildCard.Length; intI++)
{
for (int intI = 0; intI < strWildCard.Length; intI++) {
char chrC = strWildCard[intI];
switch (chrC)
{
switch (chrC) {
case '*':
sb.Append(".*");
break;
@ -233,9 +217,7 @@ namespace LSLEditor
private void ReplaceAll_Click(object sender, EventArgs e)
{
EditForm editForm = this.lslEditForm.ActiveMdiForm as EditForm;
if (editForm == null)
return;
if (editForm == null) {
UpdateComboBox(this.comboBoxReplace);
string strPattern;
@ -244,32 +226,33 @@ namespace LSLEditor
string strSourceCode = editForm.SourceCode;
RegexOptions regexOptions = RegexOptions.Compiled;
if (!this.checkBoxMatchCase.Checked)
if (!this.checkBoxMatchCase.Checked) {
regexOptions |= RegexOptions.IgnoreCase;
if (this.checkBoxWholeWord.Checked)
}
if (this.checkBoxWholeWord.Checked) {
strPattern = @"\b" + strFind + @"\b";
else
} else {
strPattern = strFind;
}
Regex regex = new Regex(strPattern, regexOptions);
int intCount = 0;
foreach(Match m in regex.Matches(strSourceCode))
{
if (m.Value.Length > 0)
foreach (Match m in regex.Matches(strSourceCode)) {
if (m.Value.Length > 0) {
intCount++;
}
if (intCount == 0)
{
MessageBox.Show("No matches found");
}
else
{
if (MessageBox.Show("There are " + intCount + " occurences, replace them all?", "Find and Replace", MessageBoxButtons.YesNoCancel) == DialogResult.Yes)
if (intCount == 0) {
MessageBox.Show("No matches found");
} else {
if (MessageBox.Show("There are " + intCount + " occurences, replace them all?", "Find and Replace", MessageBoxButtons.YesNoCancel) == DialogResult.Yes) {
editForm.SourceCode = regex.Replace(strSourceCode, strReplacement);
}
}
this.Focus();
}
}
private void FindWindow_FormClosing(object sender, FormClosingEventArgs e)
{
@ -281,22 +264,19 @@ namespace LSLEditor
private void FindWindow_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Escape)
{
if (e.KeyData == Keys.Escape) {
this.Visible = false;
e.SuppressKeyPress = true;
e.Handled = true;
}
if (e.KeyCode == Keys.Return)
{
if (e.KeyCode == Keys.Return) {
Find();
e.SuppressKeyPress = true;
this.Focus();
}
if (e.KeyCode == Keys.F3)
{
if (e.KeyCode == Keys.F3) {
Find();
e.SuppressKeyPress = true;
this.Focus();
@ -309,7 +289,5 @@ namespace LSLEditor
{
this.comboBoxFind.Focus();
}
}
}

View file

@ -56,7 +56,7 @@ namespace LSLEditor
this.lslEditForm = lslEditForm;
EditForm editForm = this.lslEditForm.ActiveMdiForm as EditForm;
this.label1.Text = "Line number (1-"+editForm.TextBox.Lines.Length+")";
this.label1.Text = "Line number (1-" + editForm.TextBox.Lines.Length + ")";
}
private void button1_Click(object sender, EventArgs e)
@ -67,16 +67,12 @@ namespace LSLEditor
private void Goto()
{
EditForm editForm = this.lslEditForm.ActiveMdiForm as EditForm;
if (editForm == null)
return;
try
{
if (editForm != null) {
try {
int intLine = Convert.ToInt32(this.textBox1.Text);
editForm.TextBox.Goto(intLine);
this.Close();
}
catch
{
} catch { }
}
}
@ -87,8 +83,7 @@ namespace LSLEditor
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return)
{
if (e.KeyCode == Keys.Return) {
Goto();
e.SuppressKeyPress = true;
}

File diff suppressed because it is too large Load diff

View file

@ -72,28 +72,35 @@ namespace LSLEditor
StringBuilder sb = new StringBuilder();
if ((intPermissions & SecondLife.PERMISSION_DEBIT) == SecondLife.PERMISSION_DEBIT)
if ((intPermissions & SecondLife.PERMISSION_DEBIT) == SecondLife.PERMISSION_DEBIT) {
sb.AppendLine("Take Linden dollars (L$) from you");
}
if ((intPermissions & SecondLife.PERMISSION_TAKE_CONTROLS) == SecondLife.PERMISSION_TAKE_CONTROLS)
if ((intPermissions & SecondLife.PERMISSION_TAKE_CONTROLS) == SecondLife.PERMISSION_TAKE_CONTROLS) {
sb.AppendLine("Act on your control inputs");
}
if ((intPermissions & SecondLife.PERMISSION_TRIGGER_ANIMATION) == SecondLife.PERMISSION_TRIGGER_ANIMATION)
if ((intPermissions & SecondLife.PERMISSION_TRIGGER_ANIMATION) == SecondLife.PERMISSION_TRIGGER_ANIMATION) {
sb.AppendLine("Animate your avatar");
}
if ((intPermissions & SecondLife.PERMISSION_ATTACH) == SecondLife.PERMISSION_ATTACH)
if ((intPermissions & SecondLife.PERMISSION_ATTACH) == SecondLife.PERMISSION_ATTACH) {
sb.AppendLine("Attach to your avatar");
}
if ((intPermissions & SecondLife.PERMISSION_CHANGE_LINKS) == SecondLife.PERMISSION_CHANGE_LINKS)
if ((intPermissions & SecondLife.PERMISSION_CHANGE_LINKS) == SecondLife.PERMISSION_CHANGE_LINKS) {
sb.AppendLine("Link and delink from other objects");
}
if ((intPermissions & SecondLife.PERMISSION_TRACK_CAMERA) == SecondLife.PERMISSION_TRACK_CAMERA)
if ((intPermissions & SecondLife.PERMISSION_TRACK_CAMERA) == SecondLife.PERMISSION_TRACK_CAMERA) {
sb.AppendLine("Track your camera");
}
if ((intPermissions & SecondLife.PERMISSION_CONTROL_CAMERA) == SecondLife.PERMISSION_CONTROL_CAMERA)
if ((intPermissions & SecondLife.PERMISSION_CONTROL_CAMERA) == SecondLife.PERMISSION_CONTROL_CAMERA) {
sb.AppendLine("Control your camera");
}
this.label1.Text = "'"+strObjectName+"', an object owned by '"+strOwner + "',\nwould like to:";
this.label1.Text = "'" + strObjectName + "', an object owned by '" + strOwner + "',\nwould like to:";
this.label2.Text = sb.ToString();
}

View file

@ -70,7 +70,7 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
// We use a Major.Minor.Bugfix.Build pattern.
[assembly: AssemblyVersion("2.999.999.7")]
[assembly: AssemblyVersion("2.999.999.117")]
//
// In order to sign your assembly you must specify a key to use. Refer to the
@ -100,4 +100,4 @@ using System.Runtime.InteropServices;
[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyName("")]
[assembly: ComVisibleAttribute(false)]
[assembly: AssemblyFileVersionAttribute("2.999.999.7")]
[assembly: AssemblyFileVersionAttribute("2.999.999.117")]

View file

@ -74,12 +74,12 @@ namespace LSLEditor
private bool GetNewHost()
{
bool blnResult = false;
Assembly assembly = CompilerHelper.CompileCSharp(editForm, CSharpCode);
if (assembly == null)
return false;
if(SecondLifeHost!=null)
if (assembly != null) {
if (SecondLifeHost != null) {
SecondLifeHost.Dispose();
}
SecondLifeHost = null;
SecondLifeHost = new SecondLifeHost(this.mainForm, assembly, editForm.FullPathName, editForm.guid);
@ -94,7 +94,9 @@ namespace LSLEditor
SecondLifeHost.State("default", true);
return true;
blnResult = true;
}
return blnResult;
}
public bool Compile(EditForm editForm)
@ -119,8 +121,7 @@ namespace LSLEditor
private void ResetScriptWatch()
{
while (true)
{
while (true) {
this.ResetScriptEvent.WaitOne();
SecondLifeHost.Dispose();
@ -131,13 +132,10 @@ namespace LSLEditor
private delegate void AddListenChannelsDelegate(ComboBox comboBox, string[] channels);
private void AddListenChannelsToComboxBox(ComboBox comboBox, string[] channels)
{
if (comboBox.InvokeRequired)
{
if (comboBox.InvokeRequired) {
comboBox.Invoke(new AddListenChannelsDelegate(AddListenChannelsToComboxBox),
new object[] { comboBox , channels });
}
else
{
new object[] { comboBox, channels });
} else {
comboBox.Items.Clear();
comboBox.Items.AddRange(channels);
comboBox.SelectedIndex = 0;
@ -145,18 +143,19 @@ namespace LSLEditor
}
private void SecondLifeHost_OnListenChannelsChanged(object sender, EventArgs e)
{
foreach (Control control in this.panel4.Controls)
{
foreach (Control control in this.panel4.Controls) {
GroupboxEvent gbe = control as GroupboxEvent;
if (gbe == null)
if (gbe == null) {
continue;
foreach (Control control1 in gbe.Controls)
{
}
foreach (Control control1 in gbe.Controls) {
GroupBox gb = control1 as GroupBox;
if (gb == null)
if (gb == null) {
continue;
if (gb.Name!="listen_0")
}
if (gb.Name != "listen_0") {
continue;
}
ComboBox comboBox = gb.Controls[0] as ComboBox;
AddListenChannelsToComboxBox(comboBox, SecondLifeHost.GetListenChannels());
}
@ -165,13 +164,10 @@ namespace LSLEditor
void host_OnDie(object sender, EventArgs e)
{
if(this.panel1.InvokeRequired)
{
if (this.panel1.InvokeRequired) {
// using Evenhandler definition as a delegate
this.panel1.Invoke(new EventHandler(host_OnDie));
}
else
{
} else {
this.panel1.Enabled = false;
}
}
@ -185,16 +181,11 @@ namespace LSLEditor
private delegate void SetStateComboboxDelegate(string strName);
public void SetStateCombobox(string strName)
{
if (this.comboBox1.InvokeRequired)
{
if (this.comboBox1.InvokeRequired) {
this.comboBox1.Invoke(new SetStateComboboxDelegate(SetStateCombobox), new object[] { strName });
}
else
{
for (int intI = 0; intI < this.comboBox1.Items.Count; intI++)
{
if (this.comboBox1.Items[intI].ToString() == strName)
{
} else {
for (int intI = 0; intI < this.comboBox1.Items.Count; intI++) {
if (this.comboBox1.Items[intI].ToString() == strName) {
this.comboBox1.SelectedIndex = intI;
break;
}
@ -204,13 +195,13 @@ namespace LSLEditor
private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (SecondLifeHost == null)
return;
if (SecondLifeHost != null) {
string strStateName = (string)this.comboBox1.Items[this.comboBox1.SelectedIndex];
if (strStateName != "")
{
if (SecondLifeHost.CurrentStateName != strStateName)
SecondLifeHost.State(strStateName,true);
if (strStateName != "") {
if (SecondLifeHost.CurrentStateName != strStateName) {
SecondLifeHost.State(strStateName, true);
}
}
}
}
@ -230,8 +221,7 @@ namespace LSLEditor
strC = translator.Parse(strC);
foreach (string strState in translator.States)
{
foreach (string strState in translator.States) {
this.comboBox1.Items.Add(strState);
}
return strC;
@ -240,18 +230,14 @@ namespace LSLEditor
private delegate void ShowLifeEventsDelegate();
private void ShowLifeEvents()
{
if (this.panel4.InvokeRequired)
{
if (this.panel4.InvokeRequired) {
this.panel4.Invoke(new ShowLifeEventsDelegate(ShowLifeEvents), null);
}
else
{
} else {
int intX = 8;
int intY = 0;
this.panel4.Controls.Clear();
foreach (string strEventName in SecondLifeHost.GetEvents())
{
foreach (string strEventName in SecondLifeHost.GetEvents()) {
string strArgs = SecondLifeHost.GetArgumentsFromMethod(strEventName);
GroupboxEvent ge = new GroupboxEvent(new Point(intX, intY), strEventName, strArgs, new System.EventHandler(this.buttonEvent_Click));
this.panel4.Controls.Add(ge);
@ -265,54 +251,44 @@ namespace LSLEditor
// Verbose
public void VerboseConsole(string strLine)
{
if (this.textBox2.IsDisposed)
return;
if (this.textBox2.InvokeRequired)
{
if (!this.textBox2.IsDisposed) {
if (this.textBox2.InvokeRequired) {
this.textBox2.Invoke(new AppendTextDelegate(VerboseConsole), new object[] { strLine });
}
else
{
} else {
this.textBox2.AppendText(strLine.Replace("\n", "\r\n") + "\r\n");
}
}
}
private string GetArgumentValue(string strName)
{
foreach (Control parent in this.panel4.Controls)
{
if (parent.Name == "GroupboxTextbox")
{
foreach (Control c in parent.Controls)
{
if (c.Name == strName)
foreach (Control parent in this.panel4.Controls) {
if (parent.Name == "GroupboxTextbox") {
foreach (Control c in parent.Controls) {
if (c.Name == strName) {
return c.Controls[0].Text;
}
}
}
}
return "";
}
private object[] GetArguments(string strName, string strArgs)
{
if (strArgs == "")
return new object[0];
try
{
object[] objResult = new object[0];
if (strArgs != "") {
try {
string[] args = strArgs.Trim().Split(new char[] { ',' });
object[] argobjects = new object[args.Length];
for (int intI = 0; intI < argobjects.Length; intI++)
{
for (int intI = 0; intI < argobjects.Length; intI++) {
string[] argument = args[intI].Trim().Split(new char[] { ' ' });
if (argument.Length == 2)
{
if (argument.Length == 2) {
string[] arArgs;
string strArgumentValue = GetArgumentValue(strName + "_" + intI);
string strArgumentName = argument[1];
string strArgumentType = argument[0];
switch (strArgumentType)
{
switch (strArgumentType) {
case "System.String":
argobjects[intI] = strArgumentValue;
break;
@ -332,7 +308,7 @@ namespace LSLEditor
argobjects[intI] = new SecondLife.key(strArgumentValue);
break;
case "LSLEditor.SecondLife+list":
argobjects[intI] = new SecondLife.list(new string[] { strArgumentValue } );
argobjects[intI] = new SecondLife.list(new string[] { strArgumentValue });
break;
case "LSLEditor.SecondLife+rotation":
arArgs = strArgumentValue.Replace("<", "").Replace(">", "").Replace(" ", "").Split(new char[] { ',' });
@ -347,19 +323,15 @@ namespace LSLEditor
argobjects[intI] = null;
break;
}
}
else
{
} else {
MessageBox.Show("Argument must be 'type name' [" + args[intI] + "]");
break;
}
}
return argobjects;
}
catch
{
return new object[0];
objResult = argobjects;
} catch { }
}
return objResult;
}
private void buttonEvent_Click(object sender, System.EventArgs e)
@ -374,9 +346,10 @@ namespace LSLEditor
private void Die()
{
if (this.SecondLifeHost != null)
if (this.SecondLifeHost != null) {
this.SecondLifeHost.Die();
}
}
// Die
private void button1_Click(object sender, EventArgs e)
@ -386,9 +359,10 @@ namespace LSLEditor
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.A)
if (e.Control && e.KeyCode == Keys.A) {
this.textBox2.SelectAll();
}
}
private void selectAllToolStripMenuItem_Click(object sender, EventArgs e)
{

View file

@ -280,6 +280,7 @@ namespace LSLEditor
public const int INVENTORY_ANIMATION = 20;
public const int INVENTORY_GESTURE = 21;
public const int JSON_APPEND = -1;
public static readonly string JSON_ARRAY = "\uFDD2";
public static readonly string JSON_FALSE = "\uFDD7";
public static readonly string JSON_INVALID = "\uFDD0";

View file

@ -50,41 +50,41 @@ namespace LSLEditor
public partial class SecondLife
{
#region events as virtuals, if one is used, use override
virtual public void at_rot_target(integer number, rotation target_rotation, rotation our_rotation) { }
virtual public void at_target(integer tnum, vector targetpos, vector ourpos) { }
virtual public void attach(key attached) { }
virtual public void changed(integer changed) { }
virtual public void collision(integer total_number) { }
virtual public void collision_end(integer total_number) { }
virtual public void collision_start(integer total_number) { }
virtual public void control(key name, integer levels, integer edges) { }
virtual public void dataserver(key requested, String data) { }
virtual public void email(String time, String address, String subject, String body, integer remaining) { }
virtual public void http_response(key request_id, integer status, list metadata, String body) { }
virtual public void http_request(key request_id, String method, String body) { }
virtual public void land_collision(vector position) { }
virtual public void land_collision_end(vector position) { }
virtual public void land_collision_start(vector position) { }
virtual public void link_message(integer sender_number, integer number, String message, key id) { }
virtual public void listen(integer channel, String name, key id, String message) { }
virtual public void money(key giver, integer amount) { }
virtual public void at_rot_target(integer iHandle, rotation rTargetRotation, rotation rCurrentRotation) { }
virtual public void at_target(integer iHandle, vector vTargetPosition, vector vCurrrentPosition) { }
virtual public void attach(key kAttached) { }
virtual public void changed(integer iChangedFlags) { }
virtual public void collision(integer iCollisionCount) { }
virtual public void collision_end(integer iCollisionCount) { }
virtual public void collision_start(integer iCollisionCount) { }
virtual public void control(key kID, integer iLevels, integer iEdges) { }
virtual public void dataserver(key kRequestID, String sData) { }
virtual public void email(String sTime, String sAddress, String sSubject, String sBody, integer iRemaining) { }
virtual public void http_response(key kRequestID, integer iStatus, list lMetadata, String sBody) { }
virtual public void http_request(key kRequestID, String sMethod, String sBody) { }
virtual public void land_collision(vector vPosition) { }
virtual public void land_collision_end(vector vPosition) { }
virtual public void land_collision_start(vector vPosition) { }
virtual public void link_message(integer iSenderLinkIndex, integer iNumber, String sText, key kID) { }
virtual public void listen(integer iChannel, String sName, key kID, String sText) { }
virtual public void money(key kPayerID, integer iAmount) { }
virtual public void moving_end() { }
virtual public void moving_start() { }
virtual public void no_sensor() { }
virtual public void not_at_rot_target() { }
virtual public void not_at_target() { }
virtual public void object_rez(key id) { }
virtual public void on_rez(integer start_param) { }
virtual public void object_rez(key kID) { }
virtual public void on_rez(integer iStartParameter) { }
virtual public void path_update(integer iType, list lReserved) { }
virtual public void remote_data(integer event_type, key channel, key message_id, String sender, integer idata, String sdata) { }
virtual public void run_time_permissions(integer permissions) { }
virtual public void sensor(integer total_number) { }
virtual public void remote_data(integer iEventType, key kChannelID, key kMessageID, String sSender, integer iData, String sData) { }
virtual public void run_time_permissions(integer iPermissionsFlags) { }
virtual public void sensor(integer iSensedCount) { }
virtual public void state_entry() { }
virtual public void state_exit() { }
virtual public void timer() { }
virtual public void touch(integer total_number) { }
virtual public void touch_end(integer total_number) { }
virtual public void touch_start(integer total_number) { }
virtual public void touch(integer iTouchesCount) { }
virtual public void touch_end(integer iTouchesCount) { }
virtual public void touch_start(integer iTouchesCount) { }
virtual public void transaction_result(key kID, integer iSuccess, String sMessage) { }
#endregion
}

View file

@ -67,29 +67,31 @@ namespace LSLEditor
public void llAddToLandBanList(key kID, Float fHours)
{
Verbose("llAddToLandBanList({0}, {1})", kID, fHours);
if (m_LandBanList.ContainsKey(kID))
m_LandBanList.Remove(kID);
m_LandBanList.Add(kID, fHours);
if (htLandBanList.ContainsKey(kID)) {
htLandBanList.Remove(kID);
}
htLandBanList.Add(kID, fHours);
}
public void llAddToLandPassList(key kID, Float fHours)
{
Verbose("llAddToLandPassList({0}, {1})", kID, fHours);
if (m_LandPassList.ContainsKey(kID))
m_LandPassList.Remove(kID);
m_LandPassList.Add(kID, fHours);
if (htLandPassList.ContainsKey(kID)) {
htLandPassList.Remove(kID);
}
htLandPassList.Add(kID, fHours);
}
public void llAdjustSoundVolume(Float fVolume)
{
Verbose("llAdjustSoundVolume({0}), fVolume");
m_Volume = fVolume;
this.fVolume = fVolume;
}
public void llAllowInventoryDrop(integer iAllowDrop)
{
Verbose("llAllowInventoryDrop({0})", iAllowDrop);
m_AllowDrop = (Boolean)iAllowDrop;
blnAllowDrop = (Boolean)iAllowDrop;
}
public Float llAngleBetween(rotation a, rotation b)
@ -386,9 +388,10 @@ namespace LSLEditor
}
list lResult = new list();
for (int intI = 0; intI < src.Count; intI++) {
if (src[intI] != null)
if (src[intI] != null) {
lResult.Add(src[intI]);
}
}
Verbose(string.Format("llDeleteSubList({0}, {1}, {2})={3}", lSource.ToVerboseString(), iStart, iEnd, lResult.ToVerboseString()));
return lResult;
}
@ -403,21 +406,25 @@ namespace LSLEditor
if (CorrectIt(intLength, ref start, ref end)) {
if (start <= end) {
for (int intI = start; intI <= end; intI++)
for (int intI = start; intI <= end; intI++) {
src[intI] = '\0';
}
} else // excluding
{
for (int intI = 0; intI <= end; intI++)
for (int intI = 0; intI <= end; intI++) {
src[intI] = '\0';
for (int intI = start; intI < intLength; intI++)
}
for (int intI = start; intI < intLength; intI++) {
src[intI] = '\0';
}
}
}
StringBuilder result = new StringBuilder();
for (int intI = 0; intI < src.Length; intI++) {
if (src[intI] != '\0')
if (src[intI] != '\0') {
result.Append(src[intI]);
}
}
Verbose(string.Format(@"llDeleteSubString(""{0}"", {1}, {2})=""{3}""", sSource, iStart, iEnd, result));
return result.ToString();
@ -556,8 +563,9 @@ namespace LSLEditor
{
StringBuilder result = new StringBuilder();
for (int intI = 0; intI < lSource.Count; intI++) {
if (intI > 0)
if (intI > 0) {
result.Append(sSeparator.ToString());
}
result.Append(lSource[intI].ToString());
}
Verbose(@"llDumpList2String({0},""{1}"")=""{2}""", lSource.ToVerboseString(), sSeparator, result.ToString());
@ -588,13 +596,12 @@ namespace LSLEditor
byte[] data = Encoding.UTF8.GetBytes(sURL.ToString());
for (int intI = 0; intI < data.Length; intI++) {
byte chrC = data[intI];
if ((chrC >= 'a' && chrC <= 'z') ||
(chrC >= 'A' && chrC <= 'Z') ||
(chrC >= '0' && chrC <= '9'))
if ((chrC >= 'a' && chrC <= 'z') || (chrC >= 'A' && chrC <= 'Z') || (chrC >= '0' && chrC <= '9')) {
sb.Append((char)chrC);
else
} else {
sb.AppendFormat("%{0:X2}", (int)chrC);
}
}
Verbose(string.Format(@"EscapeURL(""{0}"")=""{1}""", sURL, sb.ToString()));
return sb.ToString();
}
@ -652,7 +659,7 @@ namespace LSLEditor
public Float llFrand(Float fMaximum)
{
double dblValue = fMaximum * m_random.NextDouble();
double dblValue = fMaximum * rdmRandom.NextDouble();
Verbose("llFrand({0})={1}", fMaximum, dblValue);
return dblValue;
}
@ -709,11 +716,11 @@ namespace LSLEditor
public Float llGetAndResetTime()
{
// get time
double dTime = llGetTime();
Verbose("llGetAndResetTime()=" + dTime);
double dblTime = llGetTime();
Verbose("llGetAndResetTime()=" + dblTime);
// reset time
llResetTime();
return dTime;
return dblTime;
}
public String llGetAnimation(key kID)
@ -976,11 +983,12 @@ namespace LSLEditor
{
integer iEntryType;
if (iIndex < 0)
if (iIndex < 0) {
iIndex = lSource.Count + iIndex;
if (iIndex >= lSource.Count || iIndex < 0)
}
if (iIndex >= lSource.Count || iIndex < 0) {
iEntryType = 0;
else {
} else {
switch (lSource[iIndex].GetType().ToString().Replace("LSLEditor.SecondLife+", "")) {
case "System.Double":
case "Float":
@ -1021,14 +1029,14 @@ namespace LSLEditor
public vector llGetLocalPos()
{
Verbose("llGetLocalPos()={0}", m_pos);
return m_pos;
Verbose("llGetLocalPos()={0}", vPosition);
return vPosition;
}
public rotation llGetLocalRot()
{
Verbose("llGetLocalRot()={0}", m_rotlocal);
return m_rotlocal;
Verbose("llGetLocalRot()={0}", rRotationlocal);
return rRotationlocal;
}
public Float llGetMass()
@ -1096,8 +1104,9 @@ namespace LSLEditor
{
list lObjectDetails = new list();
for (int intI = 0; intI < lObjectFlags.Count; intI++) {
if (!(lObjectFlags[intI] is integer))
if (!(lObjectFlags[intI] is integer)) {
continue;
}
switch ((int)(integer)lObjectFlags[intI]) {
case OBJECT_NAME:
lObjectDetails.Add((SecondLife.String)host.GetObjectName(new Guid(kID.guid)));
@ -1241,8 +1250,8 @@ namespace LSLEditor
public string llGetParcelMusicURL()
{
Verbose(@"llGetParcelMaxPrims()=""{0}""", m_ParcelMusicURL);
return m_ParcelMusicURL;
Verbose(@"llGetParcelMaxPrims()=""{0}""", sParcelMusicURL);
return sParcelMusicURL;
}
public integer llGetParcelPrimCount(vector vPosition, integer iCategory, integer iSimWide)
@ -1282,8 +1291,8 @@ namespace LSLEditor
public vector llGetPos()
{
Verbose("llGetPos()={0}", m_pos);
return m_pos;
Verbose("llGetPos()={0}", vPosition);
return vPosition;
}
public list llGetPrimMediaParams(integer iFace, list lDesiredParams)
@ -1360,8 +1369,8 @@ namespace LSLEditor
public rotation llGetRot()
{
Verbose("llGetRot()={0}", m_rot);
return m_rot;
Verbose("llGetRot()={0}", rRotation);
return rRotation;
}
public integer llGetSPMaxMemory()
@ -1373,8 +1382,8 @@ namespace LSLEditor
public vector llGetScale()
{
Verbose("llGetScale()=" + m_scale);
return m_scale;
Verbose("llGetScale()=" + vScale);
return vScale;
}
public String llGetScriptName()
@ -1407,8 +1416,8 @@ namespace LSLEditor
public integer llGetStartParameter()
{
Verbose("llGetStartParameter()={0}" + m_start_parameter);
return m_start_parameter;
Verbose("llGetStartParameter()={0}" + iStartParameter);
return iStartParameter;
}
public list llGetStaticPath(vector vStart, vector vEnd, Float fRadius, list lParameters)
@ -1439,14 +1448,15 @@ namespace LSLEditor
if (start <= end) {
for (int intI = start; intI <= end; intI++)
sResult.Append(src[intI]);
} else // excluding
{
for (int intI = 0; intI <= end; intI++)
} else {// excluding
for (int intI = 0; intI <= end; intI++) {
sResult.Append(src[intI]);
for (int intI = start; intI < intLength; intI++)
}
for (int intI = start; intI < intLength; intI++) {
sResult.Append(src[intI]);
}
}
}
Verbose(string.Format(@"GetSubString(""{0}"", {1}, {2})=""{3}""", sSource, iStart, iEnd, sResult));
return sResult.ToString();
}
@ -1488,7 +1498,7 @@ namespace LSLEditor
public Float llGetTime()
{
TimeSpan span = DateTime.Now.ToUniversalTime() - m_DateTimeScriptStarted;
TimeSpan span = DateTime.Now.ToUniversalTime() - dtDateTimeScriptStarted;
Verbose("llGetTime()={0}", span.TotalSeconds);
return span.TotalSeconds;
}
@ -1615,15 +1625,15 @@ namespace LSLEditor
public String llInsertString(String sDestination, integer iIndex, String sSource)
{
string dst = sDestination;
string src = sSource;
int position = iIndex;
string strDestination = sDestination;
string strSource = sSource;
int intPosition = iIndex;
string sResult;
if (position < dst.Length) {
sResult = dst.Substring(0, position) + src + dst.Substring(position);
} else if (position >= 0) {
sResult = dst + src;
if (intPosition < strDestination.Length) {
sResult = strDestination.Substring(0, intPosition) + strSource + strDestination.Substring(intPosition);
} else if (intPosition >= 0) {
sResult = strDestination + strSource;
} else {
sResult = "**ERROR**";
}
@ -1784,18 +1794,17 @@ namespace LSLEditor
{
int iLength = lSource.Count;
int start = iStart;
int end = iEnd;
int intStart = iStart;
int intEnd = iEnd;
list lTemp = new list();
if (CorrectIt(iLength, ref start, ref end)) {
if (start <= end) {
for (int intI = start; intI <= end; intI++) lTemp.Add(lSource[intI]);
} else // excluding
{
for (int intI = 0; intI <= end; intI++) lTemp.Add(lSource[intI]);
for (int intI = start; intI < iLength; intI++) lTemp.Add(lSource[intI]);
if (CorrectIt(iLength, ref intStart, ref intEnd)) {
if (intStart <= intEnd) {
for (int intI = intStart; intI <= intEnd; intI++) lTemp.Add(lSource[intI]);
} else { // excluding
for (int intI = 0; intI <= intEnd; intI++) lTemp.Add(lSource[intI]);
for (int intI = intStart; intI < iLength; intI++) lTemp.Add(lSource[intI]);
}
}
list lResult = new list();
@ -1803,13 +1812,13 @@ namespace LSLEditor
if (iStride <= 0) {
sRemark = " ** stride must be > 0 **";
} else {
if (start == 0) {
if (intStart == 0) {
for (int intI = 0; intI < lTemp.Count; intI += iStride) lResult.Add(lTemp[intI]);
} else {
for (int intI = iStride - 1; intI < lTemp.Count; intI += iStride) lResult.Add(lTemp[intI]);
}
}
Verbose(@"llList2ListStrided({0}, {1}, {2}, {3})={4}{5}", lSource.ToVerboseString(), start, end, iStride, lResult.ToVerboseString(), sRemark);
Verbose(@"llList2ListStrided({0}, {1}, {2}, {3})={4}{5}", lSource.ToVerboseString(), intStart, intEnd, iStride, lResult.ToVerboseString(), sRemark);
return lResult;
}
@ -1890,8 +1899,9 @@ namespace LSLEditor
{
int intLength = lDestination.Count;
list lResult = new list();
if (iIndex < 0)
if (iIndex < 0) {
iIndex = lDestination.Count + iIndex;
}
for (int intI = 0; intI < Math.Min(iIndex, intLength); intI++) lResult.Add(lDestination[intI]);
@ -2131,8 +2141,9 @@ namespace LSLEditor
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] hash = md5.ComputeHash(Encoding.ASCII.GetBytes(sSource + ":" + iNonce.ToString()));
StringBuilder sbResult = new StringBuilder();
foreach (byte hex in hash)
foreach (byte hex in hash) {
sbResult.Append(hex.ToString("x2")); //convert to standard MD5 form
}
Verbose("llMD5String({0}, {1})={2}", sSource, iNonce, sbResult);
return sbResult.ToString();
}
@ -2377,16 +2388,16 @@ namespace LSLEditor
public void llRemoveFromLandBanList(key kAvatarID)
{
Verbose("llRemoveFromLandBanList({0})", kAvatarID);
if (m_LandBanList.ContainsKey(kAvatarID)) {
m_LandBanList.Remove(kAvatarID);
if (htLandBanList.ContainsKey(kAvatarID)) {
htLandBanList.Remove(kAvatarID);
}
}
public void llRemoveFromLandPassList(key kAvatarID)
{
Verbose("llRemoveFromLandPassList({0})", kAvatarID);
if (m_LandPassList.ContainsKey(kAvatarID)) {
m_LandPassList.Remove(kAvatarID);
if (htLandPassList.ContainsKey(kAvatarID)) {
htLandPassList.Remove(kAvatarID);
}
}
@ -2487,13 +2498,13 @@ namespace LSLEditor
public void llResetLandBanList()
{
m_LandBanList = new Hashtable();
htLandBanList = new Hashtable();
Verbose("llResetLandBanList()");
}
public void llResetLandPassList()
{
m_LandPassList = new Hashtable();
htLandPassList = new Hashtable();
Verbose("llResetLandPassList()");
}
@ -2513,7 +2524,7 @@ namespace LSLEditor
public void llResetTime()
{
Verbose("llResetTime()");
m_DateTimeScriptStarted = DateTime.Now.ToUniversalTime();
dtDateTimeScriptStarted = DateTime.Now.ToUniversalTime();
}
public integer llReturnObjectsByID(list lObjects)
@ -2565,14 +2576,15 @@ namespace LSLEditor
if (m != 0) {
double n = 2 * (rRotation.y * rRotation.s + rRotation.x * rRotation.z);
double p = m * m - n * n;
if (p > 0)
if (p > 0) {
vEuler = new vector(Math.Atan2(2.0 * (rRotation.x * rRotation.s - rRotation.y * rRotation.z), (-t.x - t.y + t.z + t.s)),
Math.Atan2(n, Math.Sqrt(p)), Math.Atan2(2.0 * (rRotation.z * rRotation.s - rRotation.x * rRotation.y), (t.x - t.y - t.z + t.s)));
else if (n > 0)
} else if (n > 0) {
vEuler = new vector(0, PI_BY_TWO, Math.Atan2((rRotation.z * rRotation.s + rRotation.x * rRotation.y), 0.5 - t.x - t.z));
else
} else {
vEuler = new vector(0, -PI_BY_TWO, Math.Atan2((rRotation.z * rRotation.s + rRotation.x * rRotation.y), 0.5 - t.x - t.z));
}
}
Verbose("llRot2Euler({0})={1}", rRotation, vEuler);
return vEuler;
}
@ -2821,7 +2833,7 @@ namespace LSLEditor
public void llSetLocalRot(rotation rRotation)
{
this.m_rotlocal = rRotation;
this.rRotationlocal = rRotation;
Verbose("llSetLocalRot({0})", rRotation);
}
@ -2852,7 +2864,7 @@ namespace LSLEditor
public void llSetParcelMusicURL(String sURL)
{
Verbose(@"llSetParcelMusicURL(""{0}"")", sURL);
m_ParcelMusicURL = sURL;
sParcelMusicURL = sURL;
}
public void llSetPayPrice(integer iPrice, list lButtons)
@ -2868,7 +2880,7 @@ namespace LSLEditor
public void llSetPos(vector vPosition)
{
Verbose("llSetPos({0})", vPosition);
m_pos = vPosition;
this.vPosition = vPosition;
}
public integer llSetPrimMediaParams(integer iFace, list lParameters)
@ -2887,7 +2899,7 @@ namespace LSLEditor
{
integer iResult = true;
Verbose("llSetRegionPos({0})={1}", vPosition, iResult);
m_pos = vPosition;
this.vPosition = vPosition;
return iResult;
}
@ -2899,13 +2911,13 @@ namespace LSLEditor
public void llSetRot(rotation rRotation)
{
Verbose("llSetRot({0})", rRotation);
m_rot = rRotation;
this.rRotation = rRotation;
}
public void llSetScale(vector vScale)
{
Verbose("llSetScale({0})", vScale);
m_scale = vScale;
this.vScale = vScale;
}
public void llSetScriptState(String sName, integer iRunState)
@ -2916,7 +2928,7 @@ namespace LSLEditor
public void llSetSitText(String sText)
{
Verbose(@"llSetSitText(""{0}"")", sText);
m_SitText = sText;
sSitText = sText;
}
public void llSetSoundQueueing(integer iQueueFlag)
@ -2926,7 +2938,7 @@ namespace LSLEditor
public void llSetSoundRadius(Float fRadius)
{
m_SoundRadius = fRadius;
fSoundRadius = fRadius;
Verbose("llSetSoundRadius({0})", fRadius);
}
@ -3207,10 +3219,11 @@ namespace LSLEditor
for (int intI = 0; intI < data.Length; intI++) {
byte chrC = data[intI];
if (chrC == (byte)'%') {
if (intI < (data.Length - 2))
if (intI < (data.Length - 2)) {
list.Add((byte)
(HexToInt(data[intI + 1]) << 4
| HexToInt(data[intI + 2])));
}
intI += 2;
} else {
list.Add(chrC);
@ -3218,8 +3231,9 @@ namespace LSLEditor
}
data = list.ToArray();
int intLen = Array.IndexOf(data, (byte)0x0);
if (intLen < 0)
if (intLen < 0) {
intLen = data.Length;
}
string strTmp = Encoding.UTF8.GetString(data, 0, intLen);
Verbose(string.Format(@"llUnescapeURL(""{0}"")=""{1}""", sURL, strTmp));
return strTmp;
@ -3306,14 +3320,17 @@ namespace LSLEditor
string S1 = Base64ToString(sText1.ToString());
string S2 = Base64ToString(sText2.ToString());
int intLength = S1.Length;
if (S2.Length == 0)
if (S2.Length == 0) {
S2 = " ";
while (S2.Length < intLength)
}
while (S2.Length < intLength) {
S2 += S2;
}
S2 = S2.Substring(0, intLength);
StringBuilder sb = new StringBuilder();
for (int intI = 0; intI < intLength; intI++)
for (int intI = 0; intI < intLength; intI++) {
sb.Append((char)(S1[intI] ^ S2[intI]));
}
string sResult = StringToBase64(sb.ToString());
Verbose(@"llXorBase64StringsCorrect(""{0}"",""{1}"")=""{2}""", sText1, sText2, sResult);
return sResult;

View file

@ -66,17 +66,17 @@ namespace LSLEditor
public class SecondLifeHostMessageLinkedEventArgs : EventArgs
{
public SecondLife.integer linknum;
public SecondLife.integer num;
public SecondLife.String str;
public SecondLife.key id;
public SecondLife.integer iLinkIndex;
public SecondLife.integer iNumber;
public SecondLife.String sText;
public SecondLife.key kID;
public SecondLifeHostMessageLinkedEventArgs(SecondLife.integer linknum, SecondLife.integer num, SecondLife.String str, SecondLife.key id)
public SecondLifeHostMessageLinkedEventArgs(SecondLife.integer iLinkIndex, SecondLife.integer iNumber, SecondLife.String sText, SecondLife.key kID)
{
this.linknum = linknum;
this.num = num;
this.str = str;
this.id = id;
this.iLinkIndex = iLinkIndex;
this.iNumber = iNumber;
this.sText = sText;
this.kID = kID;
}
}
@ -179,12 +179,10 @@ namespace LSLEditor
private void StateWatch()
{
while (true)
{
while (true) {
this.StateChanged.WaitOne();
this.taskQueue.Start(); // is implicit Stop() old Queue
if (this.CurrentStateName != this.NewStateName)
{
if (this.CurrentStateName != this.NewStateName) {
this.CurrentStateName = this.NewStateName;
ExecuteSecondLife("state_exit");
@ -196,23 +194,22 @@ namespace LSLEditor
public void State(string strStateName, bool blnForce)
{
if (this.CompiledAssembly == null)
return;
if (blnForce)
if (this.CompiledAssembly != null) {
if (blnForce) {
this.CurrentStateName = "";
}
this.NewStateName = strStateName;
this.StateChanged.Set();
}
}
private void SetState()
{
if (CompiledAssembly == null)
return;
if (CompiledAssembly != null) {
secondLife = CompiledAssembly.CreateInstance("LSLEditor.State_" + CurrentStateName) as SecondLife;
if (secondLife == null)
{
MessageBox.Show("State " + CurrentStateName+" does not exist!");
if (secondLife == null) {
MessageBox.Show("State " + CurrentStateName + " does not exist!");
return;
}
@ -224,29 +221,29 @@ namespace LSLEditor
secondLife.host = this;
// Update runtime userinterface by calling event handler
if (OnStateChange != null)
if (OnStateChange != null) {
OnStateChange(this, new SecondLifeHostEventArgs(CurrentStateName));
}
ExecuteSecondLife("state_entry");
}
}
public string GetArgumentsFromMethod(string strName)
{
if (this.secondLife == null)
return "";
MethodInfo mi = secondLife.GetType().GetMethod(strName, BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
if (mi == null)
return "";
int intI = 0;
string strArgs = "";
foreach (ParameterInfo pi in mi.GetParameters())
{
if (this.secondLife != null) {
MethodInfo mi = secondLife.GetType().GetMethod(strName, BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
if (mi != null) {
int intI = 0;
foreach (ParameterInfo pi in mi.GetParameters()) {
if (intI > 0)
strArgs += ",";
strArgs += pi.ParameterType.ToString() + " " + pi.Name;
intI++;
}
}
}
return strArgs;
}
@ -256,10 +253,8 @@ namespace LSLEditor
sb.Append("*** ");
sb.Append(strEventName);
sb.Append('(');
for (int intI = 0; intI < args.Length; intI++)
{
if (intI > 0)
sb.Append(',');
for (int intI = 0; intI < args.Length; intI++) {
if (intI > 0) sb.Append(',');
sb.Append(args[intI].ToString());
}
sb.Append(")");
@ -268,21 +263,18 @@ namespace LSLEditor
public void ExecuteSecondLife(string strName, params object[] args)
{
if (secondLife == null)
return;
if (secondLife != null) {
VerboseEvent(strName, args);
this.taskQueue.Invoke(secondLife, strName, args);
}
}
public ArrayList GetEvents()
{
ArrayList ar = new ArrayList();
if (secondLife != null)
{
foreach (MethodInfo mi in secondLife.GetType().GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly))
{
if (secondLife != null) {
foreach (MethodInfo mi in secondLife.GetType().GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)) {
ar.Add(mi.Name);
}
}
@ -292,17 +284,18 @@ namespace LSLEditor
public void Reset()
{
if (OnReset != null)
if (OnReset != null) {
OnReset(this, new EventArgs());
}
}
public void Die()
{
if (OnDie != null)
if (OnDie != null) {
OnDie(this, new EventArgs());
}
if (secondLife != null)
{
if (secondLife != null) {
// stop all timers
this.timer.Stop();
this.sensor_timer.Stop();
@ -313,26 +306,21 @@ namespace LSLEditor
this.secondLife = null;
}
}
public void Dispose()
{
if (taskQueue != null)
{
if (taskQueue != null) {
this.taskQueue.Stop();
this.taskQueue.Dispose();
this.taskQueue = null;
}
if (listXmlRpc != null)
{
foreach (XMLRPC xmlRpc in listXmlRpc)
{
if (listXmlRpc != null) {
foreach (XMLRPC xmlRpc in listXmlRpc) {
xmlRpc.CloseChannel();
}
}
if (secondLife != null)
{
if (secondLife != null) {
this.timer.Stop();
this.sensor_timer.Stop();
this.mainForm = null;
@ -364,10 +352,8 @@ namespace LSLEditor
public void llBreakLink(int linknum)
{
foreach (Link link in this.LinkList)
{
if (link.number == linknum)
{
foreach (Link link in this.LinkList) {
if (link.number == linknum) {
this.LinkList.Remove(link);
break;
}
@ -381,8 +367,7 @@ namespace LSLEditor
public string[] GetListenChannels() // for GroupboxEvent
{
List<string> list = new List<string>();
foreach (ListenFilter lf in ListenFilterList)
{
foreach (ListenFilter lf in ListenFilterList) {
list.Add(lf.channel.ToString());
}
return list.ToArray();
@ -407,11 +392,9 @@ namespace LSLEditor
public void llListenControl(int number, int active)
{
for (int intI = 0; intI < ListenFilterList.Count; intI++)
{
for (int intI = 0; intI < ListenFilterList.Count; intI++) {
ListenFilter lf = ListenFilterList[intI];
if (lf.GetHashCode() == number)
{
if (lf.GetHashCode() == number) {
lf.active = (active == 1);
ListenFilterList[intI] = lf;
break;
@ -421,11 +404,9 @@ namespace LSLEditor
public void llListenRemove(int intHandle)
{
for (int intI = 0; intI < ListenFilterList.Count; intI++)
{
for (int intI = 0; intI < ListenFilterList.Count; intI++) {
ListenFilter lf = ListenFilterList[intI];
if (lf.GetHashCode() == intHandle)
{
if (lf.GetHashCode() == intHandle) {
ListenFilterList.RemoveAt(intI);
break;
}
@ -450,18 +431,12 @@ namespace LSLEditor
{
ListenFilter lfToCheck = new ListenFilter(channel, name, id, message);
foreach (ListenFilter lf in ListenFilterList)
{
if (!lf.active)
continue;
if (lf.channel != lfToCheck.channel)
continue;
if (lf.name != "" && lf.name != lfToCheck.name)
continue;
if (lf.id != Guid.Empty.ToString() && lf.id!="" && lf.id != lfToCheck.id)
continue;
if (lf.message != "" && lf.message != lfToCheck.message)
continue;
foreach (ListenFilter lf in ListenFilterList) {
if (!lf.active) continue;
if (lf.channel != lfToCheck.channel) continue;
if (lf.name != "" && lf.name != lfToCheck.name) continue;
if (lf.id != Guid.Empty.ToString() && lf.id != "" && lf.id != lfToCheck.id) continue;
if (lf.message != "" && lf.message != lfToCheck.message) continue;
return true;
}
return false;
@ -470,65 +445,65 @@ namespace LSLEditor
// sink listen
public void Listen(SecondLifeHostChatEventArgs e)
{
if (secondLife == null)
return;
if (CheckListenFilter(e.channel, e.name, e.id, e.message))
if (secondLife != null) {
if (CheckListenFilter(e.channel, e.name, e.id, e.message)) {
ExecuteSecondLife("listen", e.channel, e.name, e.id, e.message);
}
}
}
#endregion
// raise
public void Chat(object sender, int channel, string name, SecondLife.key id, string message, CommunicationType how)
{
if (OnChat != null)
if (OnChat != null) {
OnChat(sender, new SecondLifeHostChatEventArgs(channel, name, id, message, how));
}
}
// raise
public void MessageLinked(SecondLife.integer linknum, SecondLife.integer num, SecondLife.String str, SecondLife.key id)
public void MessageLinked(SecondLife.integer iLlinkIndex, SecondLife.integer iNumber, SecondLife.String sText, SecondLife.key kID)
{
if (OnMessageLinked != null)
OnMessageLinked(this, new SecondLifeHostMessageLinkedEventArgs(linknum, num, str, id));
if (OnMessageLinked != null) {
OnMessageLinked(this, new SecondLifeHostMessageLinkedEventArgs(iLlinkIndex, iNumber, sText, kID));
}
}
// sink
public void LinkMessage(SecondLifeHostMessageLinkedEventArgs e)
{
ExecuteSecondLife("link_message", e.linknum, e.num, e.str, e.id);
ExecuteSecondLife("link_message", e.iLinkIndex, e.iNumber, e.sText, e.kID);
}
public SecondLife.key Http(string Url, SecondLife.list Parameters, string Body)
{
if (secondLife == null)
return SecondLife.NULL_KEY;
SecondLife.key Key = SecondLife.NULL_KEY;
if (secondLife != null) {
System.Net.WebProxy proxy = null;
if (Properties.Settings.Default.ProxyServer != "")
if (Properties.Settings.Default.ProxyServer != "") {
proxy = new System.Net.WebProxy(Properties.Settings.Default.ProxyServer.Replace("http://", ""));
if (Properties.Settings.Default.ProxyUserid != "" && proxy != null)
proxy.Credentials = new System.Net.NetworkCredential(Properties.Settings.Default.ProxyUserid, Properties.Settings.Default.ProxyPassword);
SecondLife.key Key = new SecondLife.key(Guid.NewGuid());
//WebRequestClass a = new WebRequestClass(proxy, secondLife, Url, Parameters, Body, Key);
try
{
HTTPRequest.Request(proxy, secondLife, Url, Parameters, Body, Key);
}
catch(Exception exception)
{
if (Properties.Settings.Default.ProxyUserid != "" && proxy != null) {
proxy.Credentials = new System.Net.NetworkCredential(Properties.Settings.Default.ProxyUserid, Properties.Settings.Default.ProxyPassword);
}
Key = new SecondLife.key(Guid.NewGuid());
//WebRequestClass a = new WebRequestClass(proxy, secondLife, Url, Parameters, Body, Key);
try {
HTTPRequest.Request(proxy, secondLife, Url, Parameters, Body, Key);
} catch (Exception exception) {
VerboseMessage(exception.Message);
}
}
return Key;
}
public void Email(string To, string Subject, string Body)
{
if (secondLife == null)
return;
if (secondLife != null) {
SmtpClient client = new SmtpClient();
client.SmtpServer = Properties.Settings.Default.EmailServer;
@ -558,12 +533,14 @@ namespace LSLEditor
VerboseMessage(client.Send(msg));
}
}
public void VerboseMessage(string Message)
{
if (OnVerboseMessage != null)
if (OnVerboseMessage != null) {
OnVerboseMessage(this, new SecondLifeHostEventArgs(Message));
}
}
delegate void ShowDialogDelegate(SecondLifeHost host,
SecondLife.String objectName,
@ -589,32 +566,28 @@ namespace LSLEditor
public void llDialog(SecondLife.key avatar, SecondLife.String message, SecondLife.list buttons, SecondLife.integer channel)
{
if (message.ToString().Length >= 512)
{
if (message.ToString().Length >= 512) {
VerboseMessage("llDialog: message too long, must be less than 512 characters");
return;
}
if (message.ToString().Length == 0)
{
if (message.ToString().Length == 0) {
VerboseMessage("llDialog: must supply a message");
return;
}
for (int intI = 0; intI < buttons.Count; intI++)
{
if (buttons[intI].ToString() == "")
{
for (int intI = 0; intI < buttons.Count; intI++) {
if (buttons[intI].ToString() == "") {
VerboseMessage("llDialog: all buttons must have label strings");
return;
}
if (buttons[intI].ToString().Length > 24)
{
if (buttons[intI].ToString().Length > 24) {
VerboseMessage("llDialog:Button Labels can not have more than 24 characters");
return;
}
}
if (buttons.Count == 0)
if (buttons.Count == 0) {
buttons = new SecondLife.list(new string[] { "OK" });
}
this.mainForm.Invoke(new ShowDialogDelegate(Dialog), this, (SecondLife.String)GetObjectName(), secondLife.llGetOwner(), (SecondLife.String)Properties.Settings.Default.AvatarName, message, buttons, channel);
}
@ -639,13 +612,11 @@ namespace LSLEditor
}
public void llTextBox(SecondLife.key avatar, SecondLife.String message, SecondLife.integer channel)
{
if (message.ToString().Length >= 512)
{
if (message.ToString().Length >= 512) {
VerboseMessage("llTextBox: message too long, must be less than 512 characters");
return;
}
if (message.ToString().Length == 0)
{
if (message.ToString().Length == 0) {
VerboseMessage("llTextBos: must supply a message");
return;
}
@ -694,13 +665,8 @@ namespace LSLEditor
public void SendControl(Keys keys)
{
if (m_intControls < 0)
return;
if (this.secondLife == null)
return;
if (m_intControls >= 0 || this.secondLife != null) {
// check againt m_intControls TODO!!!!!
int held = 0;
int change = 0;
@ -715,6 +681,7 @@ namespace LSLEditor
ExecuteSecondLife("control", (SecondLife.key)Properties.Settings.Default.AvatarKey, (SecondLife.integer)held, (SecondLife.integer)change);
}
}
public void TakeControls(int intControls, int accept, int pass_on)
{
@ -732,11 +699,9 @@ namespace LSLEditor
StreamReader sr = new StreamReader(strPath);
int intI = 0;
string strData = SecondLife.EOF;
while (!sr.EndOfStream)
{
while (!sr.EndOfStream) {
string strLine = sr.ReadLine();
if (intI == line)
{
if (intI == line) {
strData = strLine;
break;
}
@ -749,10 +714,10 @@ namespace LSLEditor
public SecondLife.key GetNotecardLine(string name, int line)
{
string strPath = mainForm.SolutionExplorer.GetPath(this.guid, name);
if(strPath == string.Empty)
if (strPath == string.Empty) {
strPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), name);
if (!File.Exists(strPath))
{
}
if (!File.Exists(strPath)) {
VerboseMessage("Notecard: " + strPath + " not found");
taskQueue.Invoke(secondLife, "llSay", (SecondLife.integer)0, (SecondLife.String)("Couldn't find notecard " + name));
return SecondLife.NULL_KEY;
@ -767,8 +732,7 @@ namespace LSLEditor
{
StreamReader sr = new StreamReader(strPath);
int intI = 0;
while (!sr.EndOfStream)
{
while (!sr.EndOfStream) {
string strLine = sr.ReadLine();
intI++;
}
@ -780,11 +744,11 @@ namespace LSLEditor
public SecondLife.key GetNumberOfNotecardLines(string name)
{
string strPath = mainForm.SolutionExplorer.GetPath(this.guid, name);
if (strPath == string.Empty)
if (strPath == string.Empty) {
strPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), name);
}
if (!File.Exists(strPath))
{
if (!File.Exists(strPath)) {
VerboseMessage("Notecard: " + strPath + " not found");
taskQueue.Invoke(secondLife, "llSay", (SecondLife.integer)0, (SecondLife.String)("Couldn't find notecard " + name));
return SecondLife.NULL_KEY;
@ -800,8 +764,9 @@ namespace LSLEditor
private List<XMLRPC> listXmlRpc;
public void llOpenRemoteDataChannel()
{
if (listXmlRpc == null)
if (listXmlRpc == null) {
listXmlRpc = new List<XMLRPC>();
}
XMLRPC xmlRpc = new XMLRPC();
xmlRpc.OnRequest += new XMLRPC.RequestEventHandler(xmlRpc_OnRequest);
xmlRpc.OpenChannel(listXmlRpc.Count);
@ -830,30 +795,26 @@ namespace LSLEditor
public void llCloseRemoteDataChannel(SecondLife.key channel)
{
if (listXmlRpc == null)
return;
foreach (XMLRPC xmlRpc in listXmlRpc)
{
if (xmlRpc.guid == channel.guid)
{
if (listXmlRpc != null) {
foreach (XMLRPC xmlRpc in listXmlRpc) {
if (xmlRpc.guid == channel.guid) {
xmlRpc.CloseChannel();
break;
}
}
}
}
public void llRemoteDataReply(SecondLife.key channel, SecondLife.key message_id, string sdata, int idata)
{
if (listXmlRpc == null)
return;
foreach (XMLRPC xmlRpc in listXmlRpc)
{
if (xmlRpc.guid == channel.guid)
{
if (listXmlRpc != null) {
foreach (XMLRPC xmlRpc in listXmlRpc) {
if (xmlRpc.guid == channel.guid) {
xmlRpc.RemoteDataReply(channel.guid, message_id.guid, sdata, idata);
break;
}
}
}
}
// Wiki sais this is not working in InWorld
public SecondLife.key llSendRemoteData(SecondLife.key channel, string dest, int idata, string sdata)
@ -880,10 +841,7 @@ namespace LSLEditor
public string GetObjectName(Guid guid)
{
string strObjectName = mainForm.SolutionExplorer.GetObjectName(guid);
if (strObjectName != string.Empty)
return strObjectName;
else
return this.ObjectName;
return strObjectName != string.Empty ? strObjectName : this.ObjectName;
}
public string GetObjectName()
@ -893,18 +851,20 @@ namespace LSLEditor
public void SetObjectName(string name)
{
if (!mainForm.SolutionExplorer.SetObjectName(this.guid, name))
if (!mainForm.SolutionExplorer.SetObjectName(this.guid, name)) {
ObjectName = name;
}
}
public string GetObjectDescription(Guid guid)
{
string strObjectDescription = mainForm.SolutionExplorer.GetObjectDescription(guid);
if (strObjectDescription != string.Empty)
if (strObjectDescription != string.Empty) {
return strObjectDescription;
else
} else {
return this.ObjectDescription;
}
}
public string GetObjectDescription()
{
@ -913,43 +873,49 @@ namespace LSLEditor
public void SetObjectDescription(string description)
{
if (!mainForm.SolutionExplorer.SetObjectDescription(this.guid, description))
if (!mainForm.SolutionExplorer.SetObjectDescription(this.guid, description)) {
this.ObjectDescription = description;
}
}
public string GetScriptName()
{
string strScriptName = mainForm.SolutionExplorer.GetScriptName(this.guid);
if (strScriptName == string.Empty)
if (strScriptName == string.Empty) {
strScriptName = this.FullPath;
if (Properties.Settings.Default.llGetScriptName)
}
if (Properties.Settings.Default.llGetScriptName) {
strScriptName = Path.GetFileNameWithoutExtension(strScriptName);
else
} else {
strScriptName = Path.GetFileName(strScriptName);
}
return strScriptName;
}
public SecondLife.key GetKey()
{
string strGuid = mainForm.SolutionExplorer.GetKey(this.guid);
if (strGuid == string.Empty)
if (strGuid == string.Empty) {
return new SecondLife.key(this.guid);
}
return new SecondLife.key(strGuid);
}
public SecondLife.String GetInventoryName(SecondLife.integer type, SecondLife.integer number)
{
string strInventoryName = mainForm.SolutionExplorer.GetInventoryName(this.guid, type, number);
if (strInventoryName == string.Empty)
if (strInventoryName == string.Empty) {
return "**GetInventoryName only works in SolutionExplorer**";
}
return strInventoryName;
}
public SecondLife.key GetInventoryKey(SecondLife.String name)
{
string strInventoryKey = mainForm.SolutionExplorer.GetInventoryKey(this.guid, name);
if (strInventoryKey == string.Empty)
if (strInventoryKey == string.Empty) {
return new SecondLife.key(Guid.Empty);
}
return new SecondLife.key(strInventoryKey);
}
@ -971,8 +937,9 @@ namespace LSLEditor
public System.Media.SoundPlayer GetSoundPlayer(string sound)
{
string strPath = mainForm.SolutionExplorer.GetPath(this.guid, sound);
if (strPath == string.Empty)
if (strPath == string.Empty) {
strPath = sound;
}
return new System.Media.SoundPlayer(strPath);
}

View file

@ -42,19 +42,21 @@
// ********
// */
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
//
/*
// (C) 2006,2007 Alphons van der Heijden
// mail: alphons@heijden.com
//
*/
namespace LSLEditor
{
/// <summary>
/// Enumeration of Communication Types that the host understands
/// </summary>
public enum CommunicationType
{
Whisper, Say, Shout, OwnerSay, RegionSay, RegionSayTo
@ -62,81 +64,109 @@ namespace LSLEditor
public partial class SecondLife
{
// Make friends with my host
public SecondLifeHost host;
/// <summary>
/// Holds the host object.
/// </summary>
private SecondLifeHost slhHost;
#region members
// Random generator
private Random m_random;
/// <summary>
/// Random generator.
/// </summary>
private Random rdmRandom;
private DateTime m_DateTimeScriptStarted;
/// <summary>
/// Holds the time of the script starting execution.
/// </summary>
private DateTime dtDateTimeScriptStarted;
private Boolean m_AllowDrop = false;
private Hashtable m_LandPassList;
/// <summary>
/// Contains a boolean value indicating wether this object accepts other items to be dropped into it.
/// </summary>
private bool blnAllowDrop = false;
private Hashtable m_LandBanList;
/// <summary>
/// Contains a list of keys of avatars that may enter a parcel.
/// </summary>
private Hashtable htLandPassList;
private Float m_Volume;
/// <summary>
/// Contains a list of keys of avatars that may NOT enter a parcel.
/// </summary>
private Hashtable htLandBanList;
private String m_ObjectName;
private String m_ParcelMusicURL;
private vector m_pos;
private rotation m_rot;
private rotation m_rotlocal;
private vector m_scale;
private String m_SitText;
private Float m_SoundRadius;
/// <summary>
/// Volume of sound played by this prim.
/// </summary>
private Float fVolume;
private vector m_RegionCorner;
private String sObjectName;
private String sParcelMusicURL;
private vector vPosition;
private rotation rRotation;
private rotation rRotationlocal;
private vector vScale;
private String sSitText;
private Float fSoundRadius;
private integer m_start_parameter;
private vector vRegionCorner;
private integer iStartParameter;
#endregion
#region Constructor
/// <summary>
/// Initialises the <see cref="SecondLife"/> class.
/// </summary>
public SecondLife()
{
this.host = null;
rdmRandom = new Random();
dtDateTimeScriptStarted = DateTime.Now.ToUniversalTime();
htLandPassList = new Hashtable();
htLandBanList = new Hashtable();
fVolume = 0.0;
sObjectName = null;
vPosition = new vector(127, 128, 20);
rRotation = rotation.ZERO_ROTATION;
rRotationlocal = rotation.ZERO_ROTATION;
vScale = vector.ZERO_VECTOR;
sSitText = "sittext";
fSoundRadius = 1.0;
iStartParameter = 0;
vRegionCorner = vector.ZERO_VECTOR;
}
#endregion
#region Properties
public vector GetLocalPos
{
// TODO change this to use a call to llGetLocalPos specifying NOT to be Verbose. After all functions have been changed to allow verbose/silent option.
get { return m_pos; }
get { return vPosition; }
}
#endregion
#region constructor
public SecondLife()
public SecondLifeHost host
{
host = null;
m_random = new Random();
m_DateTimeScriptStarted = DateTime.Now.ToUniversalTime();
m_LandPassList = new Hashtable();
m_LandBanList = new Hashtable();
m_Volume = 0.0;
m_ObjectName = null;
m_pos = new vector(127, 128, 20);
m_rot = rotation.ZERO_ROTATION;
m_rotlocal = rotation.ZERO_ROTATION;
m_scale = vector.ZERO_VECTOR;
m_SitText = "sittext";
m_SoundRadius = 1.0;
m_start_parameter = 0;
m_RegionCorner = vector.ZERO_VECTOR;
get { return this.slhHost; }
set { this.slhHost = value; }
}
#endregion
#region internal routines
private void Verbose(string strLine, params object[] parameters)
{
if (parameters.Length == 0)
if (parameters.Length == 0) {
host.VerboseMessage(strLine);
else
host.VerboseMessage(string.Format(strLine, parameters));
} else {
this.host.VerboseMessage(string.Format(strLine, parameters));
}
}
private void Chat(integer channel, string message, CommunicationType how)
private void Chat(integer iChannel, string sText, CommunicationType ctHow)
{
host.Chat(host, channel, host.GetObjectName(), host.GetKey(), message, how);
this.host.Chat(this.host, iChannel, this.host.GetObjectName(), this.host.GetKey(), sText, ctHow);
}
public void state(string strStateName)
@ -151,141 +181,148 @@ namespace LSLEditor
#region Helper Functions
#region List Functions
private bool CorrectIt(int length, ref int start, ref int end)
private bool CorrectIt(int intLength, ref int intStart, ref int intEnd)
{
if (start < 0)
start = length + start;
if (end < 0)
end = length + end;
if (start <= end)
{
if (start >= length)
return false;
if (end < 0)
return false;
bool bResult = true;
if (intStart < 0) {
intStart = intLength + intStart;
}
start = Math.Max(0, start);
end = Math.Min(length - 1, end);
return true;
if (intEnd < 0) {
intEnd = intLength + intEnd;
}
public ArrayList RandomShuffle(ArrayList collection)
{
// We have to copy all items anyway, and there isn't a way to produce the items
// on the fly that is linear. So copying to an array and shuffling it is as efficient as we can get.
if (intStart <= intEnd) {
if (intStart >= intLength) {
bResult = false;
}
if (intEnd < 0) {
bResult = false;
}
}
if (collection == null)
intStart = Math.Max(0, intStart);
intEnd = Math.Min(intLength - 1, intEnd);
return bResult;
}
public ArrayList RandomShuffle(ArrayList alCollection)
{
/* We have to copy all items anyway, and there isn't a way to produce the items
on the fly that is linear. So copying to an array and shuffling it is as efficient as we can get.
*/
if (alCollection == null) {
throw new ArgumentNullException("collection");
}
int count = collection.Count;
for (int i = count - 1; i >= 1; --i)
{
int intCount = alCollection.Count;
for (int i = intCount - 1; i >= 1; --i) {
// Pick an random number 0 through i inclusive.
int j = m_random.Next(i + 1);
int j = rdmRandom.Next(i + 1);
// Swap array[i] and array[j]
object temp = collection[i];
collection[i] = collection[j];
collection[j] = temp;
object temp = alCollection[i];
alCollection[i] = alCollection[j];
alCollection[j] = temp;
}
return collection;
return alCollection;
}
private ArrayList List2Buckets(list src, int stride)
private ArrayList List2Buckets(list lSource, int intStride)
{
ArrayList buckets = null;
if ((src.Count % stride) == 0 && stride <= src.Count)
{
buckets = new ArrayList();
for (int intI = 0; intI < src.Count; intI += stride)
{
object[] bucket = new object[stride];
for (int intJ = 0; intJ < stride; intJ++)
bucket[intJ] = src[intI + intJ];
buckets.Add(bucket);
ArrayList alBuckets = null;
if ((lSource.Count % intStride) == 0 && intStride <= lSource.Count) {
alBuckets = new ArrayList();
for (int intI = 0; intI < lSource.Count; intI += intStride) {
object[] bucket = new object[intStride];
for (int intJ = 0; intJ < intStride; intJ++) {
bucket[intJ] = lSource[intI + intJ];
}
alBuckets.Add(bucket);
}
}
return buckets;
return alBuckets;
}
private list Buckets2List(ArrayList buckets, int stride)
private list Buckets2List(ArrayList alBuckets, int intStride)
{
object[] items = new object[buckets.Count * stride];
for (int intI = 0; intI < buckets.Count; intI++)
{
for (int intJ = 0; intJ < stride; intJ++)
items[intI * stride + intJ] = ((object[])buckets[intI])[intJ];
object[] items = new object[alBuckets.Count * intStride];
for (int intI = 0; intI < alBuckets.Count; intI++) {
for (int intJ = 0; intJ < intStride; intJ++) {
items[intI * intStride + intJ] = ((object[])alBuckets[intI])[intJ];
}
}
return new list(items);
}
/// <summary>
/// Implements the Comparer Interface for our custom types (Float, Integer, and String).
/// </summary>
private class BucketComparer : IComparer
{
private integer ascending;
private integer iAscending;
/// <summary>
/// Initialises the <see cref="BucketComparer"/> class.
/// </summary>
/// <param name="ascending"></param>
public BucketComparer(integer ascending)
{
this.ascending = ascending;
this.iAscending = ascending;
}
public int Compare(object x, object y)
{
int iResult = 0;
object objA, objB;
object[] xx = x as object[];
object[] yy = y as object[];
object A, B;
if (ascending == TRUE)
{
A = xx[0];
B = yy[0];
}
else
{
B = xx[0];
A = yy[0];
if (iAscending == TRUE) {
objA = xx[0];
objB = yy[0];
} else {
objB = xx[0];
objA = yy[0];
}
string strType = A.GetType().ToString();
string strType = objA.GetType().ToString();
if (((A is string) && (B is string)) ||
((A is SecondLife.String) && (B is SecondLife.String)))
return string.Compare(A.ToString(), B.ToString());
if (((objA is string) && (objB is string)) || ((objA is SecondLife.String) && (objB is SecondLife.String))) {
iResult = string.Compare(objA.ToString(), objB.ToString());
} else if ((objA is SecondLife.integer) && (objB is SecondLife.integer)) {
iResult = SecondLife.integer.Compare((SecondLife.integer)objA, (SecondLife.integer)objB);
} else if ((objA is SecondLife.Float) && (objB is SecondLife.Float)) {
iResult = SecondLife.Float.Compare((SecondLife.Float)objA, (SecondLife.Float)objB);
}
if ((A is SecondLife.integer) && (B is SecondLife.integer))
return SecondLife.integer.Compare((SecondLife.integer)A, (SecondLife.integer)B);
if ((A is SecondLife.Float) && (B is SecondLife.Float))
return SecondLife.Float.Compare((SecondLife.Float)A, (SecondLife.Float)B);
return 0;
return iResult;
}
}
#endregion
#region String Functions
private list ParseString(String src, list separators, list spacers, bool blnKeepNulls)
private list ParseString(String sSource, list lSeparators, list lSpacers, bool blnKeepNulls)
{
list result = new list();
list lResult = new list();
int intFrom = 0;
string s = src;
for (int intI = 0; intI < s.Length; intI++)
{
string s = sSource;
for (int intI = 0; intI < s.Length; intI++) {
string strTmp = s.Substring(intI);
bool blnFound = false;
for (int intJ = 0; intJ < separators.Count; intJ++)
{
string strSeparator = separators[intJ].ToString();
if (strSeparator.Length == 0)
for (int intJ = 0; intJ < lSeparators.Count; intJ++) {
string strSeparator = lSeparators[intJ].ToString();
if (strSeparator.Length == 0) {
continue; // check this
if (strTmp.IndexOf(strSeparator) == 0)
{
}
if (strTmp.IndexOf(strSeparator) == 0) {
string strBefore = s.Substring(intFrom, intI - intFrom);
if (strBefore != "" || blnKeepNulls)
result.Add(strBefore);
if (strBefore != "" || blnKeepNulls) {
lResult.Add(strBefore);
}
intI += strSeparator.Length - 1;
intFrom = intI + 1;
blnFound = true;
@ -293,20 +330,21 @@ namespace LSLEditor
}
}
if (blnFound)
if (blnFound) {
continue;
}
for (int intJ = 0; intJ < spacers.Count; intJ++)
{
string strSpacer = spacers[intJ].ToString();
if (strSpacer.Length == 0)
for (int intJ = 0; intJ < lSpacers.Count; intJ++) {
string strSpacer = lSpacers[intJ].ToString();
if (strSpacer.Length == 0) {
continue; // check this
if (strTmp.IndexOf(strSpacer) == 0)
{
}
if (strTmp.IndexOf(strSpacer) == 0) {
string strBefore = s.Substring(intFrom, intI - intFrom);
if (strBefore != "" || blnKeepNulls)
result.Add(strBefore);
result.Add(strSpacer);
if (strBefore != "" || blnKeepNulls) {
lResult.Add(strBefore);
}
lResult.Add(strSpacer);
intI += strSpacer.Length - 1;
intFrom = intI + 1;
break;
@ -314,50 +352,55 @@ namespace LSLEditor
}
}
string strLast = s.Substring(intFrom);
if (strLast != "" || blnKeepNulls)
result.Add(strLast);
return result;
if (strLast != "" || blnKeepNulls) {
lResult.Add(strLast);
}
return lResult;
}
private string StringToBase64(string str)
private string StringToBase64(string strText)
{
byte[] data = Encoding.UTF8.GetBytes(str);
byte[] data = Encoding.UTF8.GetBytes(strText);
return Convert.ToBase64String(data);
}
private string Base64ToString(string str)
private string Base64ToString(string strText)
{
byte[] data = Convert.FromBase64String(str);
byte[] data = Convert.FromBase64String(strText);
int intLen = Array.IndexOf(data, (byte)0x00);
if (intLen < 0)
if (intLen < 0) {
intLen = data.Length;
}
return Encoding.UTF8.GetString(data, 0, intLen);
}
private int LookupBase64(string s, int intIndex)
{
if (intIndex < s.Length)
{
int intReturn = FastLookupBase64[s[intIndex]];
if (intReturn == 0)
if (s[intIndex] != 'A')
int intReturn = 0;
if (intIndex < s.Length) {
intReturn = FastLookupBase64[s[intIndex]];
if (intReturn == 0) {
if (s[intIndex] != 'A') {
throw new Exception();
}
}
} else {
intReturn = 0;
}
return intReturn;
}
else
return 0;
}
static readonly int[] FastLookupBase64 =
{// 0 1 2 3 4 5 6 7 8 9 A B C D E F
////[SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1204:StaticElementsMustAppearBeforeInstanceElements", Justification = "Stays with other string functions.")]
private static readonly int[] FastLookupBase64 =
{ // 0 1 2 3 4 5 6 7 8 9 A B C D E F
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 00
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 10
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,62, 0, 0, 0,63, // 20
52,53,54,55,56,57,58,59,60,61, 0, 0, 0, 0, 0, 0, // 30
0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, // 40
15,16,17,18,19,20,21,22,23,24,25, 0, 0, 0, 0, 0, // 50
0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40, // 60
41,42,43,44,45,46,47,48,49,50,51, 0, 0, 0, 0, 0, // 70
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 63, // 20
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, // 30
0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, // 40
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, // 50
0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, // 60
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, // 70
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 80
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 90
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // A0
@ -365,110 +408,112 @@ namespace LSLEditor
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // C0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // D0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // E0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // F0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // F0
#endregion
#region Math Functions
private integer ModPow1(integer a, integer b, integer c)
private integer ModPow1(integer iA, integer iB, integer iC)
{
return (int)Math.Pow((int)a, (int)b & (int)0xffff) % (int)c;
return (int)Math.Pow((int)iA, (int)iB & (int)0xffff) % (int)iC;
}
private integer ModPow2(integer x, integer y, integer m)
private integer ModPow2(integer iValueX, integer iValueY, integer iModulus)
{
if (!x) return 0;
integer k = 1 + (int)Math.Ceiling(Math.Log(Math.Abs(x)) / 0.69314718055994530941723212145818);//ceil(log2(x))
integer iResult = 0;
if (iValueX != 0) {
integer k = 1 + (int)Math.Ceiling(Math.Log(Math.Abs(iValueX)) / 0.69314718055994530941723212145818); // ceil(log2(x))
integer w = 32;
integer p = w / k;
integer r = y / p;
integer f = y % p;
integer r = iValueY / p;
integer f = iValueY % p;
integer z = 1;
if (r) z = ModPow2(ModPow1(x, p, m), r, m);
if (f) z = (z * ModPow1(x, f, m)) % m;
return z;
if (r) {
z = ModPow2(ModPow1(iValueX, p, iModulus), r, iModulus);
}
if (f) {
z = (z * ModPow1(iValueX, f, iModulus)) % iModulus;
}
iResult = z;
}
return iResult;
}
#endregion Math Functions
private List<double> GetListOfNumbers(list input)
private List<double> GetListOfNumbers(list lInput)
{
List<double> result = new List<double>();
for (int intI = 0; intI < input.Count; intI++)
{
object objI = input[intI];
List<double> lResult = new List<double>();
for (int intI = 0; intI < lInput.Count; intI++) {
object objI = lInput[intI];
string strType = objI.GetType().ToString().Replace("LSLEditor.SecondLife+", "");
switch (strType)
{
switch (strType) {
case "Float":
result.Add(Convert.ToDouble((Float)objI));
lResult.Add(Convert.ToDouble((Float)objI));
break;
case "System.Int32":
result.Add(Convert.ToDouble((int)objI));
lResult.Add(Convert.ToDouble((int)objI));
break;
case "System.Double":
result.Add(Convert.ToDouble((double)objI));
lResult.Add(Convert.ToDouble((double)objI));
break;
case "integer":
result.Add(Convert.ToDouble((integer)objI));
lResult.Add(Convert.ToDouble((integer)objI));
break;
default:
break;
}
}
return result;
return lResult;
}
private double GetAverage(double[] data)
{
try
{
double DataTotal = 0;
for (int i = 0; i < data.Length; i++)
{
DataTotal += data[i];
try {
double dblDataTotal = 0;
for (int i = 0; i < data.Length; i++) {
dblDataTotal += data[i];
}
return SafeDivide(DataTotal, data.Length);
return SafeDivide(dblDataTotal, data.Length);
} catch (Exception) {
throw;
}
catch (Exception) { throw; }
}
public double GetStandardDeviation(double[] num)
public double GetStandardDeviation(double[] dblNumbers)
{
double Sum = 0.0, SumOfSqrs = 0.0;
for (int i = 0; i < num.Length; i++)
{
Sum += num[i];
SumOfSqrs += Math.Pow(num[i], 2);
double dblSum = 0.0, dblSumOfSqrs = 0.0;
for (int i = 0; i < dblNumbers.Length; i++) {
dblSum += dblNumbers[i];
dblSumOfSqrs += Math.Pow(dblNumbers[i], 2);
}
double topSum = (num.Length * SumOfSqrs) - (Math.Pow(Sum, 2));
double n = (double)num.Length;
return Math.Sqrt(topSum / (n * (n - 1)));
double dblTopSum = (dblNumbers.Length * dblSumOfSqrs) - Math.Pow(dblSum, 2);
double dblN = (double)dblNumbers.Length;
return Math.Sqrt(dblTopSum / (dblN * (dblN - 1)));
}
private double SafeDivide(double value1, double value2)
private double SafeDivide(double dblValue1, double dblValue2)
{
double ret = 0;
try
{
if ((value1 == 0) || (value2 == 0)) { return ret; }
ret = value1 / value2;
double dblResult = 0;
try {
if ((dblValue1 != 0) && (dblValue2 != 0)) {
dblResult = dblValue1 / dblValue2;
}
catch { }
return ret;
} catch {
}
return dblResult;
}
private byte HexToInt(byte b)
{
if (b >= '0' && b <= '9')
return (byte)(b - '0');
else if ((b >= 'a' && b <= 'f') || (b >= 'A' && b <= 'F'))
return (byte)((b & 0x5f) - 0x37);
else
return 0; // error
byte bResult;
if (b >= '0' && b <= '9') {
bResult = (byte)(b - '0');
} else if ((b >= 'a' && b <= 'f') || (b >= 'A' && b <= 'F')) {
bResult = (byte)((b & 0x5f) - 0x37);
} else {
bResult = 0; // error
}
return bResult;
}
#endregion
}
}

View file

@ -80,7 +80,7 @@ namespace LSLEditor
public static explicit operator String(float i)
{
return new String(string.Format("{0:0.000000}",i));
return new String(string.Format("{0:0.000000}", i));
}
public static implicit operator string(String s)
@ -100,19 +100,16 @@ namespace LSLEditor
public static bool operator !=(String x, String y)
{
return !(x==y);
return !(x == y);
}
// Public overrides
public override bool Equals(object o)
{
try
{
try {
return (bool)(this.value == o.ToString());
}
catch
{
} catch {
return false;
}
}
@ -124,8 +121,9 @@ namespace LSLEditor
public override string ToString()
{
if (this.value == null)
if (this.value == null) {
this.value = "";
}
return this.value;
}

View file

@ -57,8 +57,7 @@ namespace LSLEditor
{
get
{
if (m_value == null)
m_value = (Int32)0;
if (m_value == null) m_value = (Int32)0;
return (Int32)m_value;
}
set
@ -137,10 +136,7 @@ namespace LSLEditor
// Logical negation (NOT) operator
public static integer operator !(integer x)
{
if (x.value == 0)
return TRUE;
else
return FALSE;
return x.value == 0 ? TRUE : FALSE;
}
// Bitwise AND operator
@ -257,22 +253,21 @@ namespace LSLEditor
public static int Compare(integer a, integer b)
{
if (a.value < b.value)
return -1;
if (a.value > b.value)
return 1;
return 0;
int intResult = 0;
if (a.value < b.value) {
intResult = -1;
} else if (a.value > b.value) {
intResult = 1;
}
return intResult;
}
// Override the Object.Equals(object o) method:
public override bool Equals(object o)
{
try
{
try {
return (bool)(this == (integer)o);
}
catch
{
} catch {
return false;
}
}

View file

@ -84,25 +84,18 @@ namespace LSLEditor
// This is the one-and-only implicit typecasting in SecondLife
public static implicit operator key(string strGuid)
{
if (strGuid == null)
return new key("");
else
return new key(strGuid);
return strGuid == null ? new key("") : new key(strGuid);
}
public static implicit operator key(String _strGuid)
{
string strGuid = _strGuid;
if (strGuid == null)
return new key("");
else
return new key(strGuid);
return strGuid == null ? new key("") : new key(strGuid);
}
public override string ToString()
{
if (this.guid == null)
this.guid = "";
if (this.guid == null) this.guid = "";
return this.guid.ToString();
}
@ -129,34 +122,27 @@ namespace LSLEditor
public static bool operator true(key k)
{
if ((object)k == null)
return false;
if (k.guid == NULL_KEY)
return false;
if (k.guid == "")
return false;
return true;
bool bResult = true;
if ((object)k == null || k.guid == NULL_KEY || k.guid == "") {
bResult = false;
}
return bResult;
}
public static bool operator false(key k)
{
if ((object)k == null)
return true;
if (k.guid == NULL_KEY)
return true;
if (k.guid == "")
return true;
return false;
bool bResult = false;
if ((object)k == null || k.guid == NULL_KEY || k.guid == "") {
bResult = true;
}
return bResult;
}
public override bool Equals(object obj)
{
try
{
try {
return (this == (key)obj);
}
catch
{
} catch {
return false;
}
}

View file

@ -70,94 +70,85 @@ namespace LSLEditor
{
get
{
if (this.value == null)
this.value = new ArrayList();
if (this.value == null) this.value = new ArrayList();
return this.value.Count;
}
}
public void AddRange(list c)
{
if(this.value == null)
this.value = new ArrayList();
if (this.value == null) this.value = new ArrayList();
this.value.AddRange(c.ToArray());
}
public void Add(object value)
{
if (this.value == null)
this.value = new ArrayList();
if (this.value == null) this.value = new ArrayList();
string strType = value.GetType().ToString();
if (value is string)
if (value is string) {
this.value.Add((String)value.ToString());
else if (value is int)
} else if (value is int) {
this.value.Add(new integer((int)value));
else if (value is uint)
} else if (value is uint) {
this.value.Add(new integer((int)(uint)value));
else if (value is double)
} else if (value is double) {
this.value.Add(new Float((double)value));
else
} else {
this.value.Add(value);
}
}
public object this[int index]
{
get
{
if (this.value == null)
this.value = new ArrayList();
if (this.value == null) this.value = new ArrayList();
return this.value[index];
}
set
{
if (this.value == null)
this.value = new ArrayList();
if (this.value == null) this.value = new ArrayList();
this.value[index] = value;
}
}
public void Insert(int index, object value)
{
if (this.value == null)
this.value = new ArrayList();
if (this.value == null) this.value = new ArrayList();
if (this.value == null)
this.value = new ArrayList();
if (this.value == null) this.value = new ArrayList();
string strType = value.GetType().ToString();
if (value is string)
if (value is string) {
this.value.Insert(index, (String)value.ToString());
else if (value is int)
} else if (value is int) {
this.value.Insert(index, new integer((int)value));
else if (value is uint)
} else if (value is uint) {
this.value.Insert(index, new integer((int)(uint)value));
else if (value is double)
} else if (value is double) {
this.value.Insert(index, new Float((double)value));
else
} else {
this.value.Insert(index, value);
}
}
public object[] ToArray()
{
if (this.value == null)
this.value = new ArrayList();
if (this.value == null) this.value = new ArrayList();
return this.value.ToArray();
}
public static list operator +(list a, list b)
{
list l = new list();
if((object)a != null)
l.AddRange(a);
if ((object)b != null)
l.AddRange(b);
if ((object)a != null) l.AddRange(a);
if ((object)b != null) l.AddRange(b);
return l;
}
public static list operator +(object b, list a)
{
list l = new list();
if ((object)a != null)
l.AddRange(a);
if ((object)a != null) l.AddRange(a);
l.Insert(0, b);
return l;
}
@ -165,8 +156,7 @@ namespace LSLEditor
public static list operator +(list a, object b)
{
list l = new list();
if ((object)a != null)
l.AddRange(a);
if ((object)a != null) l.AddRange(a);
l.Add(b);
return l;
}
@ -235,50 +225,50 @@ namespace LSLEditor
public static integer operator ==(list l, list m)
{
if (l.Count != m.Count)
return FALSE;
for (int intI = 0; intI < l.Count; intI++)
if (!l[intI].Equals(m[intI]))
return FALSE;
return TRUE;
int iResult = TRUE;
if (l.Count != m.Count) {
iResult = FALSE;
} else {
for (int intI = 0; intI < l.Count; intI++) {
if (!l[intI].Equals(m[intI])) {
iResult = FALSE;
break;
}
}
}
return iResult;
}
public static integer operator !=(list l, list m)
{
int intDifferent=0;
if (m.Count == 0) // shortcut
return l.Count;
for (int intI = 0; intI < l.Count; intI++)
{
int intDifferent = 0;
if (m.Count == 0) {// shortcut
intDifferent = l.Count;
} else {
for (int intI = 0; intI < l.Count; intI++) {
bool blnFound = false;
for (int intJ = 0; intJ < m.Count; intJ++)
{
if (l[intI].Equals(m[intJ]))
{
for (int intJ = 0; intJ < m.Count; intJ++) {
if (l[intI].Equals(m[intJ])) {
blnFound = true;
break;
}
}
if(!blnFound)
intDifferent++;
if (!blnFound) intDifferent++;
}
}
return intDifferent;
}
public static bool operator true(list x)
{
if ((object)x == null)
return false;
return (x.value.Count != 0);
return (object)x == null ? false : (x.value.Count != 0);
}
// Definitely false operator. Returns true if the operand is
// ==0, false otherwise:
public static bool operator false(list x)
{
if ((object)x == null)
return true;
return (x.value.Count == 0);
return (object)x == null ? true : (x.value.Count == 0);
}
@ -295,53 +285,45 @@ namespace LSLEditor
public string ToVerboseString()
{
if (this.value == null)
if (this.value == null) {
this.value = new ArrayList();
}
StringBuilder sb = new StringBuilder();
sb.Append('[');
for (int intI = 0; intI < this.value.Count; intI++)
{
if(intI>0)
sb.Append(',');
if((this.value[intI] is string) && Properties.Settings.Default.QuotesListVerbose)
sb.Append("\""+this.value[intI].ToString()+"\"");
else
for (int intI = 0; intI < this.value.Count; intI++) {
if (intI > 0) sb.Append(',');
if ((this.value[intI] is string) && Properties.Settings.Default.QuotesListVerbose) {
sb.Append("\"" + this.value[intI].ToString() + "\"");
} else {
sb.Append(this.value[intI].ToString());
}
}
sb.Append(']');
return sb.ToString();
}
public override string ToString()
{
if (this.value == null)
this.value = new ArrayList();
if (this.value == null) this.value = new ArrayList();
StringBuilder sb = new StringBuilder();
for (int intI = 0; intI < this.value.Count; intI++)
{
if (this.value[intI] is vector)
{
for (int intI = 0; intI < this.value.Count; intI++) {
if (this.value[intI] is vector) {
vector v = (vector)this.value[intI];
sb.AppendFormat(new System.Globalization.CultureInfo("en-us"), "<{0:0.000000}, {1:0.000000}, {2:0.000000}>", (double)v.x, (double)v.y, (double)v.z);
}
else if (this.value[intI] is rotation)
{
} else if (this.value[intI] is rotation) {
rotation r = (rotation)this.value[intI];
sb.AppendFormat(new System.Globalization.CultureInfo("en-us"), "<{0:0.000000}, {1:0.000000}, {2:0.000000}, {3:0.000000}>", (double)r.x, (double)r.y, (double)r.z, (double)r.s);
}
else
} else {
sb.Append(this.value[intI].ToString());
}
}
return sb.ToString();
}
public static explicit operator String(list l)
{
if ((object)l == null)
return "";
else
return l.ToString();
return (object)l == null ? "" : l.ToString();
}
}

View file

@ -56,8 +56,7 @@ namespace LSLEditor
{
get
{
if (m_x == null)
m_x = (Float)0;
if (m_x == null) m_x = (Float)0;
return (Float)m_x;
}
set
@ -70,8 +69,7 @@ namespace LSLEditor
{
get
{
if (m_y == null)
m_y = (Float)0;
if (m_y == null) m_y = (Float)0;
return (Float)m_y;
}
set
@ -84,8 +82,7 @@ namespace LSLEditor
{
get
{
if (m_z == null)
m_z = (Float)0;
if (m_z == null) m_z = (Float)0;
return (Float)m_z;
}
set
@ -98,8 +95,7 @@ namespace LSLEditor
{
get
{
if (m_s == null)
m_s = (Float)0;
if (m_s == null) m_s = (Float)0;
return (Float)m_s;
}
set
@ -137,8 +133,7 @@ namespace LSLEditor
RegexOptions.IgnorePatternWhitespace |
RegexOptions.Compiled);
Match m = regex.Match(a);
if (m.Success)
{
if (m.Success) {
this.m_x = new Float(m.Groups["x"].Value);
this.m_y = new Float(m.Groups["y"].Value);
this.m_z = new Float(m.Groups["z"].Value);
@ -158,11 +153,12 @@ namespace LSLEditor
public static explicit operator String(rotation rot)
{
if ((object)rot == null)
if ((object)rot == null) {
return ZERO_ROTATION.ToString();
else
} else {
return rot.ToString();
}
}
// 23 feb 2008
public static rotation operator -(rotation r)
@ -220,19 +216,19 @@ namespace LSLEditor
public static bool operator ==(rotation r1, rotation r2)
{
if ((object)r1 == null)
r1 = ZERO_ROTATION;
if ((object)r2 == null)
r2 = ZERO_ROTATION;
if (Math.Abs(r1.x - r2.x) > EqualityTolerence)
return false;
if (Math.Abs(r1.y - r2.y) > EqualityTolerence)
return false;
if (Math.Abs(r1.z - r2.z) > EqualityTolerence)
return false;
if (Math.Abs(r1.s - r2.s) > EqualityTolerence)
return false;
return true;
bool bReturn = true;
if ((object)r1 == null) r1 = ZERO_ROTATION;
if ((object)r2 == null) r2 = ZERO_ROTATION;
if (Math.Abs(r1.x - r2.x) > EqualityTolerence) {
bReturn = false;
} else if (Math.Abs(r1.y - r2.y) > EqualityTolerence) {
bReturn = false;
} else if (Math.Abs(r1.z - r2.z) > EqualityTolerence) {
bReturn = false;
} else if (Math.Abs(r1.s - r2.s) > EqualityTolerence) {
bReturn = false;
}
return bReturn;
}
public static bool operator !=(rotation r, rotation s)
@ -242,19 +238,23 @@ namespace LSLEditor
public static bool operator true(rotation r)
{
if ((object)r == null)
if ((object)r == null) {
return false;
if (r.x == 0 && r.y == 0 && r.z == 0 && r.s == 1)
}
if (r.x == 0 && r.y == 0 && r.z == 0 && r.s == 1) {
return false;
}
return true;
}
public static bool operator false(rotation r)
{
if ((object)r == null)
if ((object)r == null) {
return true;
if (r.x == 0 && r.y == 0 && r.z == 0 && r.s == 1)
}
if (r.x == 0 && r.y == 0 && r.z == 0 && r.s == 1) {
return true;
}
return false;
}
@ -266,12 +266,9 @@ namespace LSLEditor
public override bool Equals(object obj)
{
try
{
try {
return (this == (rotation)obj);
}
catch
{
} catch {
return false;
}
}

View file

@ -221,18 +221,18 @@ namespace LSLEditor
public static bool operator ==(vector v1, vector v2)
{
if ((object)v1 == null)
v1 = ZERO_VECTOR;
if ((object)v2 == null)
v2 = ZERO_VECTOR;
if ((object)v1 == null) v1 = ZERO_VECTOR;
if ((object)v2 == null) v2 = ZERO_VECTOR;
if (Math.Abs(v1.x - v2.x) > EqualityTolerence)
return false;
if (Math.Abs(v1.y - v2.y) > EqualityTolerence)
return false;
if (Math.Abs(v1.z - v2.z) > EqualityTolerence)
return false;
return true;
bool bResult = true;
if (Math.Abs(v1.x - v2.x) > EqualityTolerence) {
bResult = false;
} else if (Math.Abs(v1.y - v2.y) > EqualityTolerence) {
bResult = false;
} else if (Math.Abs(v1.z - v2.z) > EqualityTolerence) {
bResult = false;
}
return bResult;
}
public static bool operator !=(vector v1, vector v2)
@ -242,19 +242,17 @@ namespace LSLEditor
public static bool operator true(vector v)
{
if ((object)v == null)
return false;
if (v.x == 0 && v.y == 0 && v.z == 0)
if ((object)v == null || (v.x == 0 && v.y == 0 && v.z == 0)) {
return false;
}
return true;
}
public static bool operator false(vector v)
{
if ((object)v == null)
return true;
if (v.x == 0 && v.y == 0 && v.z == 0)
if ((object)v == null || (v.x == 0 && v.y == 0 && v.z == 0)) {
return true;
}
return false;
}
@ -265,11 +263,12 @@ namespace LSLEditor
public static explicit operator String(vector v)
{
if ((object)v == null)
if ((object)v == null) {
return ZERO_VECTOR.ToString();
else
} else {
return v.ToString();
}
}
public override int GetHashCode()
{
@ -278,12 +277,9 @@ namespace LSLEditor
public override bool Equals(object obj)
{
try
{
try {
return (this == (vector)obj);
}
catch
{
} catch {
return false;
}
}

163
trunk/Settings.StyleCop Normal file
View file

@ -0,0 +1,163 @@
<StyleCopSettings Version="105">
<GlobalSettings>
<StringProperty Name="Culture">en-GB</StringProperty>
<StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
</GlobalSettings>
<Analyzers>
<Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
<Rules>
<Rule Name="FileMustHaveHeader">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="FileHeaderMustShowCopyright">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="FileHeaderMustContainFileName">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="FileHeaderFileNameDocumentationMustMatchFileName">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="FileHeaderMustHaveValidCompanyText">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="DocumentationHeadersMustNotContainBlankLines">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="PropertyDocumentationMustHaveValue">
<RuleSettings>
<BooleanProperty Name="Enabled">True</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="PropertyDocumentationMustHaveValueText">
<RuleSettings>
<BooleanProperty Name="Enabled">True</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="ElementParameterDocumentationMustHaveText">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="DocumentationTextMustBeginWithACapitalLetter">
<RuleSettings>
<BooleanProperty Name="Enabled">True</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="DocumentationTextMustEndWithAPeriod">
<RuleSettings>
<BooleanProperty Name="Enabled">True</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="DocumentationTextMustMeetMinimumCharacterLength">
<RuleSettings>
<BooleanProperty Name="Enabled">True</BooleanProperty>
</RuleSettings>
</Rule>
</Rules>
<AnalyzerSettings />
</Analyzer>
<Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">
<Rules>
<Rule Name="UsingDirectivesMustBePlacedWithinNamespace">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="ElementsMustAppearInTheCorrectOrder">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="ElementsMustBeOrderedByAccess">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="StaticElementsMustAppearBeforeInstanceElements">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
</Rules>
<AnalyzerSettings />
</Analyzer>
<Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
<Rules>
<Rule Name="ElementMustBeginWithUpperCaseLetter">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="FieldNamesMustNotUseHungarianNotation">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
</Rules>
<AnalyzerSettings />
</Analyzer>
<Analyzer AnalyzerId="StyleCop.CSharp.LayoutRules">
<Rules>
<Rule Name="CurlyBracketsForMultiLineStatementsMustNotShareLine">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="ClosingCurlyBracketMustBeFollowedByBlankLine">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
</Rules>
<AnalyzerSettings />
</Analyzer>
<Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
<Rules>
<Rule Name="TabsMustNotBeUsed">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
</Rules>
<AnalyzerSettings />
</Analyzer>
<Analyzer AnalyzerId="StyleCop.CSharp.ReadabilityRules">
<Rules>
<Rule Name="PrefixLocalCallsWithThis">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="CodeMustNotContainMultipleStatementsOnOneLine">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="UseStringEmptyForEmptyStrings">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
<Rule Name="UseBuiltInTypeAlias">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
</Rules>
<AnalyzerSettings />
</Analyzer>
</Analyzers>
</StyleCopSettings>

View file

@ -71,10 +71,12 @@ namespace LSLEditor
this.History = new List<string>();
this.intHistory = 0;
if (Properties.Settings.Default.SimulatorLocation != Point.Empty)
if (Properties.Settings.Default.SimulatorLocation != Point.Empty) {
this.Location = Properties.Settings.Default.SimulatorLocation;
if (Properties.Settings.Default.SimulatorSize != Size.Empty)
}
if (Properties.Settings.Default.SimulatorSize != Size.Empty) {
this.Size = Properties.Settings.Default.SimulatorSize;
}
this.Clear();
@ -86,11 +88,11 @@ namespace LSLEditor
this.LocationChanged += new EventHandler(SimulatorConsole_LocationChanged);
foreach (Form form in this.Children)
{
foreach (Form form in this.Children) {
EditForm editForm = form as EditForm;
if (editForm == null || editForm.IsDisposed)
if (editForm == null || editForm.IsDisposed) {
continue;
}
editForm.ChatHandler = chathandler;
editForm.MessageLinkedHandler = messagelinkedhandler;
editForm.StartCompiler();
@ -99,11 +101,11 @@ namespace LSLEditor
public void Stop()
{
foreach (Form form in this.Children)
{
foreach (Form form in this.Children) {
EditForm editForm = form as EditForm;
if (editForm == null || editForm.IsDisposed)
if (editForm == null || editForm.IsDisposed) {
continue;
}
editForm.StopCompiler();
}
}
@ -118,26 +120,28 @@ namespace LSLEditor
this.Listen(e);
// talk only to the owner
if (e.how == CommunicationType.OwnerSay)
return;
foreach (Form form in this.Children)
{
if (e.how != CommunicationType.OwnerSay) {
foreach (Form form in this.Children) {
EditForm editForm = form as EditForm;
if (editForm == null || editForm.IsDisposed)
if (editForm == null || editForm.IsDisposed) {
continue;
}
if (editForm.runtime == null)
if (editForm.runtime == null) {
continue;
}
if (editForm.runtime.SecondLifeHost == null)
if (editForm.runtime.SecondLifeHost == null) {
continue;
}
// prevent loops loops loops loops, dont talk to myself
if (sender != editForm.runtime.SecondLifeHost)
if (sender != editForm.runtime.SecondLifeHost) {
editForm.runtime.SecondLifeHost.Listen(e);
}
}
}
}
private void SecondLifeHost_OnMessageLinked(object sender, SecondLifeHostMessageLinkedEventArgs e)
{
@ -148,9 +152,8 @@ namespace LSLEditor
List<Guid> list;
int intLinkNum = e.linknum;
switch (intLinkNum)
{
int intLinkNum = e.iLinkIndex;
switch (intLinkNum) {
case 1: // LINK_ROOT , root prim in linked set (but not in a single prim, which is 0)
list = this.solutionExplorer.GetScripts(RootObjectGuid, false);
break;
@ -160,8 +163,7 @@ namespace LSLEditor
case -2: // LINK_ALL_OTHERS , all other prims in object besides prim function is in
list = this.solutionExplorer.GetScripts(RootObjectGuid, true);
// remove scripts in prim itself, and below
foreach (Guid guid in this.solutionExplorer.GetScripts(ObjectGuid, true))
{
foreach (Guid guid in this.solutionExplorer.GetScripts(ObjectGuid, true)) {
if (list.Contains(guid))
list.Remove(guid);
}
@ -169,8 +171,7 @@ namespace LSLEditor
case -3: // LINK_ALL_CHILDREN , all child prims in object
list = this.solutionExplorer.GetScripts(RootObjectGuid, true);
// remove root itself
foreach (Guid guid in this.solutionExplorer.GetScripts(RootObjectGuid, false))
{
foreach (Guid guid in this.solutionExplorer.GetScripts(RootObjectGuid, false)) {
if (list.Contains(guid))
list.Remove(guid);
}
@ -193,36 +194,41 @@ namespace LSLEditor
}
// only send message to running scripts in list
foreach (Form form in this.Children)
{
foreach (Form form in this.Children) {
EditForm editForm = form as EditForm;
if (editForm == null || editForm.IsDisposed)
if (editForm == null || editForm.IsDisposed) {
continue;
}
if (editForm.runtime == null)
if (editForm.runtime == null) {
continue;
}
if (editForm.runtime.SecondLifeHost == null)
if (editForm.runtime.SecondLifeHost == null) {
continue;
}
if(list.Contains(editForm.guid))
if (list.Contains(editForm.guid)) {
editForm.runtime.SecondLifeHost.LinkMessage(e);
}
}
}
private void SimulatorConsole_OnControl(object sender, EventArgs e)
{
foreach (Form form in this.Children)
{
foreach (Form form in this.Children) {
EditForm editForm = form as EditForm;
if (editForm == null || editForm.IsDisposed)
if (editForm == null || editForm.IsDisposed) {
continue;
}
if (editForm.runtime == null)
if (editForm.runtime == null) {
continue;
}
if (editForm.runtime.SecondLifeHost == null)
if (editForm.runtime.SecondLifeHost == null) {
continue;
}
editForm.runtime.SecondLifeHost.SendControl((Keys)sender);
}
@ -231,48 +237,49 @@ namespace LSLEditor
private delegate void AppendTextDelegate(string strLine);
public void TalkToSimulatorConsole(string strLine)
{
if (this.textBox2.InvokeRequired)
{
if (this.textBox2.InvokeRequired) {
this.textBox2.Invoke(new AppendTextDelegate(TalkToSimulatorConsole), new object[] { strLine });
}
else
{
} else {
this.textBox2.AppendText(strLine.Replace("\n", "\r\n") + "\r\n");
}
}
private void Chat(int channel, string name, SecondLife.key id, string message, CommunicationType how)
{
if (OnChat != null)
if (OnChat != null) {
OnChat(this, new SecondLifeHostChatEventArgs(channel, name, id, message, how));
}
}
public void Listen(SecondLifeHostChatEventArgs e)
{
// Translate the incomming messages a bit so it looks like SL.
string strHow = ": ";
if (e.how == CommunicationType.Shout)
if (e.how == CommunicationType.Shout) {
strHow = " shout: ";
}
if (e.how == CommunicationType.Whisper)
if (e.how == CommunicationType.Whisper) {
strHow = " whispers: ";
}
string strWho = e.name;
string strMessage = e.message;
if (e.name == Properties.Settings.Default.AvatarName)
if (e.name == Properties.Settings.Default.AvatarName) {
strWho = "You";
}
if (e.message.ToString().StartsWith("/me"))
{
if (e.message.ToString().StartsWith("/me")) {
strWho = e.name;
strHow = " ";
strMessage = e.message.ToString().Substring(3).Trim();
}
if (e.channel == 0)
if (e.channel == 0) {
TalkToSimulatorConsole(strWho + strHow + strMessage);
}
}
private void Speak(CommunicationType how)
{
@ -283,38 +290,29 @@ namespace LSLEditor
intHistory = History.Count;
if (strMessage == "")
return;
if (strMessage[0] == '/')
{
if (strMessage.StartsWith("/me"))
{
if (strMessage != ""){
if (strMessage[0] == '/') {
if (strMessage.StartsWith("/me")) {
// do nothing
}
else
{
} else {
string strChannel = "";
for (int intI = 1; intI < strMessage.Length; intI++)
{
if (strMessage[intI] >= '0' && strMessage[intI] <= '9')
{
for (int intI = 1; intI < strMessage.Length; intI++) {
if (strMessage[intI] >= '0' && strMessage[intI] <= '9') {
strChannel += strMessage[intI];
if (intI < 10)
if (intI < 10) {
continue;
}
try
{
}
try {
intChannel = Convert.ToInt32(strChannel);
strMessage = strMessage.Substring(intI).Trim();
}
catch
{
} catch {
}
break;
}
}
}
}
SecondLife.key id = new SecondLife.key(Properties.Settings.Default.AvatarKey);
@ -336,37 +334,33 @@ namespace LSLEditor
private void ScrollChat(KeyEventArgs e)
{
e.SuppressKeyPress = true;
if (e.KeyCode == Keys.Up)
if (e.KeyCode == Keys.Up) {
intHistory = Math.Max(0, intHistory - 1);
if (e.KeyCode == Keys.Down)
}
if (e.KeyCode == Keys.Down) {
intHistory = Math.Min(History.Count, intHistory + 1);
}
this.textBox1.Clear();
if (intHistory != History.Count)
if (intHistory != History.Count) {
this.textBox1.AppendText(History[intHistory]);
}
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
this.buttonSay.Enabled = true;
this.buttonShout.Enabled = true;
if (e.KeyCode == Keys.Return)
{
if (e.KeyCode == Keys.Return) {
Speak(CommunicationType.Say);
e.SuppressKeyPress = true;
}
if (e.Control && (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down))
{
if (e.Control && (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down)) {
ScrollChat(e);
}
else if (e.KeyCode == Keys.Down ||
e.KeyCode == Keys.Left ||
e.KeyCode == Keys.Right ||
e.KeyCode == Keys.Up
)
{
if (OnControl != null)
} else if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Left || e.KeyCode == Keys.Right || e.KeyCode == Keys.Up ) {
if (OnControl != null) {
OnControl(e.KeyCode, new EventArgs());
}
e.SuppressKeyPress = true;
}
}
@ -391,9 +385,10 @@ namespace LSLEditor
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.A)
if (e.Control && e.KeyCode == Keys.A) {
this.textBox2.SelectAll();
}
}
private void copyToolStripMenuItem_Click(object sender, EventArgs e)
{

View file

@ -112,10 +112,11 @@ namespace LSLEditor
{
Uri url;
string strVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
if (Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().Location).Contains("beta"))
if (Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().Location).Contains("beta")) {
url = new Uri(Properties.Settings.Default.UpdateManifest + "?beta-" + strVersion);
else
} else {
url = new Uri(Properties.Settings.Default.UpdateManifest + "?" + strVersion);
}
manifest = new WebClient();
manifest.DownloadStringCompleted += new DownloadStringCompletedEventHandler(manifest_DownloadCompleted);
@ -130,28 +131,26 @@ namespace LSLEditor
public void CheckForUpdate(bool blnForce)
{
if (!blnForce)
{
if (Properties.Settings.Default.DeleteOldFiles)
if (!blnForce) {
if (Properties.Settings.Default.DeleteOldFiles) {
DeleteOldFile();
}
DateTime dateTime = Properties.Settings.Default.CheckDate;
if (Properties.Settings.Default.CheckEveryDay)
{
if (Properties.Settings.Default.CheckEveryDay) {
TimeSpan lastUpdate = DateTime.Now - dateTime;
if (lastUpdate.TotalDays >= 1.0)
if (lastUpdate.TotalDays >= 1.0) {
blnForce = true;
}
else if (Properties.Settings.Default.CheckEveryWeek)
{
} else if (Properties.Settings.Default.CheckEveryWeek) {
TimeSpan lastUpdate = DateTime.Now - dateTime;
if(lastUpdate.TotalDays >= 7.0)
if (lastUpdate.TotalDays >= 7.0) {
blnForce = true;
}
}
}
if (blnForce)
{
if (blnForce) {
Properties.Settings.Default.CheckDate = DateTime.Now;
Properties.Settings.Default.Save(); // save also all settings
@ -176,19 +175,13 @@ namespace LSLEditor
string strHelpHashMe = "";
string strHelpFile = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), Properties.Settings.Default.HelpOfflineFile);
if (File.Exists(strHelpFile))
{
if (File.Exists(strHelpFile)) {
strHelpHashMe = Decompressor.MD5Verify.ComputeHash(strHelpFile);
}
else
{
} else {
// help file does not exist
if (Properties.Settings.Default.HelpOffline || blnOnlyHelpFile)
{
if (Properties.Settings.Default.HelpOffline || blnOnlyHelpFile) {
strHelpHashMe = "*"; // force new update
}
else
{
} else {
strHelpHashMe = ""; // no update
this.labelHelpFile.Visible = false;
this.labelHelpversionString.Visible = false;
@ -196,22 +189,22 @@ namespace LSLEditor
}
StringReader sr = new StringReader(e.Result);
for (int intI = 0; intI < 255; intI++)
{
for (int intI = 0; intI < 255; intI++) {
string strLine = sr.ReadLine();
if (strLine == null)
if (strLine == null) {
break;
}
int intSplit = strLine.IndexOf("=");
if (intSplit < 0)
if (intSplit < 0) {
continue;
}
string strName = strLine.Substring(0, intSplit);
string strValue = strLine.Substring(intSplit + 1);
//All hashes are of the uncompressed file. However, different archives may contain different versions.
switch (strName)
{
switch (strName) {
case "Version":
case "BZipVersion":
bzip = new versionInfo(strValue);
@ -274,48 +267,41 @@ namespace LSLEditor
this.labelOurVersionString.Text = current.version.ToString();
this.labelLatestVersionString.Text = web.version.ToString();
if (String.IsNullOrEmpty(web.uri) || (web.version.CompareTo(current.version) != 1))
{
if (String.IsNullOrEmpty(web.uri) || (web.version.CompareTo(current.version) != 1)) {
return;
}
if (strHelpHashMe == "")
if (strHelpHashMe == "") {
strHelpHashMe = strHelpHashWeb;
}
if (strHelpHashMe == strHelpHashWeb)
{
if (strHelpHashMe == strHelpHashWeb) {
this.labelHelpversionString.Text = "Up to date";
this.strHelpUrl = null;
}
else
{
} else {
this.labelHelpversionString.Text = "Out of date";
}
if (current.hash == web.hash)
{
if (current.hash == web.hash) {
this.strDownloadUrl = null;
}
else
{
} else {
this.strDownloadUrl = web.uri;
}
if (this.blnOnlyHelpFile)
{
if (this.blnOnlyHelpFile) {
this.strDownloadUrl = null;
this.labelLatestVersion.Visible = false;
this.labelLatestVersionString.Visible = false;
}
if (this.strHelpUrl != null || this.strDownloadUrl != null)
{
if (this.strHelpUrl != null || this.strDownloadUrl != null) {
this.buttonUpdate.Enabled = true;
if (OnUpdateAvailable != null)
if (OnUpdateAvailable != null) {
OnUpdateAvailable(this, null);
}
}
}
private void buttonCancel_Click(object sender, EventArgs e)
{
@ -330,23 +316,23 @@ namespace LSLEditor
private void Download()
{
if (strHelpUrl != null)
if (strHelpUrl != null) {
DownloadHelpFile(); // starts also DownloadProgram when finished
else
} else {
DownloadProgram();
}
}
private void DownloadHelpFile()
{
if (strHelpUrl == null)
return;
if (strHelpUrl != null) {
Uri url = new Uri(strHelpUrl);
client = new WebClient();
if(this.strHelpReferer != null)
if (this.strHelpReferer != null) {
client.Headers.Add("Referer", strHelpReferer);
}
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadHelpFileCompleted);
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
@ -355,45 +341,43 @@ namespace LSLEditor
string strDirectory = Path.GetDirectoryName(strCurrentFile);
string strNewFile = Path.Combine(strDirectory, Properties.Settings.Default.HelpOfflineFile);
if (File.Exists(strNewFile))
if (File.Exists(strNewFile)) {
File.Delete(strNewFile);
}
client.DownloadFileAsync(url, strNewFile);
}
}
void client_DownloadHelpFileCompleted(object sender, AsyncCompletedEventArgs e)
{
try
{
if (e.Error != null)
try {
if (e.Error != null) {
throw e.Error;
}
string strCurrentFile = Assembly.GetExecutingAssembly().Location;
string strDirectory = Path.GetDirectoryName(strCurrentFile);
string strNewFile = Path.Combine(strDirectory, Properties.Settings.Default.HelpOfflineFile);
string strComputedHash = Decompressor.MD5Verify.ComputeHash(strNewFile);
if (strComputedHash != strHelpHashWeb)
{
if (strComputedHash != strHelpHashWeb) {
this.buttonUpdate.Enabled = true;
throw new Exception("MD5 Hash of HelpFile not correct, try downloading again!");
}
if (this.strDownloadUrl != null)
if (this.strDownloadUrl != null) {
DownloadProgram();
else
} else {
this.Close();
}
catch (Exception exception)
{
} catch (Exception exception) {
MessageBox.Show(exception.Message, "Oops...", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void DownloadProgram()
{
if (strDownloadUrl == null)
return;
if (strDownloadUrl != null) {
Uri url = new Uri(strDownloadUrl);
client = new WebClient();
@ -405,11 +389,13 @@ namespace LSLEditor
string strNewFileName = Path.GetFileName(strDownloadUrl);
string strNewFile = Path.Combine(strDirectory, strNewFileName);
if (File.Exists(strNewFile))
if (File.Exists(strNewFile)) {
File.Delete(strNewFile);
}
client.DownloadFileAsync(url, strNewFile, strNewFileName);
}
}
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
@ -418,10 +404,10 @@ namespace LSLEditor
void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
try
{
if (e.Error != null)
try {
if (e.Error != null) {
throw e.Error;
}
string strNewFileName = e.UserState.ToString();
@ -433,8 +419,7 @@ namespace LSLEditor
string strOldFile = Path.Combine(strDirectory, "_LSLEditor.exe");
string strExtension = Path.GetExtension(strNewFileName);
switch (strExtension)
{
switch (strExtension) {
case ".bz2":
Decompressor.BZip2.Decompress(File.OpenRead(strZipFile), File.Create(strNewFile));
break;
@ -449,16 +434,16 @@ namespace LSLEditor
break;
}
string strComputedHash = Decompressor.MD5Verify.ComputeHash(strNewFile);
if (strComputedHash == strHashWeb)
{
if (strComputedHash == strHashWeb) {
if (File.Exists(strOldFile))
File.Delete(strOldFile);
File.Move(strCurrentFile, strOldFile);
File.Move(strNewFile, strCurrentFile);
if (File.Exists(strZipFile))
if (File.Exists(strZipFile)) {
File.Delete(strZipFile);
}
// save all there is pending (if any)
Properties.Settings.Default.Save();
@ -466,32 +451,28 @@ namespace LSLEditor
System.Diagnostics.Process.Start(strCurrentFile);
Environment.Exit(0);
}
else
{
} else {
this.buttonUpdate.Enabled = true;
throw new Exception("MD5 Hash not correct, try downloading again!");
}
}
catch (Exception exception)
{
} catch (Exception exception) {
MessageBox.Show(exception.Message, "Oops...", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void UpdateApplicationForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (client != null)
{
if (client.IsBusy)
if (client != null) {
if (client.IsBusy) {
client.CancelAsync();
}
client.Dispose();
}
client = null;
if (manifest != null)
{
if (manifest.IsBusy)
if (manifest != null) {
if (manifest.IsBusy) {
manifest.CancelAsync();
}
manifest.Dispose();
}
manifest = null;
@ -502,9 +483,10 @@ namespace LSLEditor
string strCurrentFile = Assembly.GetExecutingAssembly().Location;
string strDirectory = Path.GetDirectoryName(strCurrentFile);
string strOldFile = Path.Combine(strDirectory, "_LSLEditor.exe");
if (File.Exists(strOldFile))
if (File.Exists(strOldFile)) {
File.Delete(strOldFile);
}
}
}
}

View file

@ -68,21 +68,19 @@ namespace LSLEditor
this.ObjectName = strObjectName;
this.id = id;
for (int intI = 1; intI <= 12; intI++)
{
for (int intI = 1; intI <= 12; intI++) {
Button button = this.Controls["Button" + intI] as Button;
button.Visible = false;
}
this.label1.Text = strOwner + "'s '" + strObjectName +"'";
this.label2.Text = strMessage.ToString().Replace("&","&&");
this.label1.Text = strOwner + "'s '" + strObjectName + "'";
this.label2.Text = strMessage.ToString().Replace("&", "&&");
for (int intI = 1; intI <= buttons.Count; intI++)
{
for (int intI = 1; intI <= buttons.Count; intI++) {
Button button = this.Controls["Button" + intI] as Button;
if (button == null)
continue;
button.Text = buttons[intI - 1].ToString().Replace("&","&&");
button.Text = buttons[intI - 1].ToString().Replace("&", "&&");
button.Visible = true;
button.Click += new EventHandler(button_Click);
}
@ -91,11 +89,11 @@ namespace LSLEditor
void button_Click(object sender, EventArgs e)
{
Button button = sender as Button;
if (button == null)
return;
host.Chat(this,this.Channel, this.OwnerName, this.id, button.Text.Replace("&&","&"), CommunicationType.Say);
if (button != null) {
host.Chat(this, this.Channel, this.OwnerName, this.id, button.Text.Replace("&&", "&"), CommunicationType.Say);
this.Close();
}
}
private void button13_Click(object sender, EventArgs e)
{

View file

@ -41,11 +41,10 @@ namespace LSLEditor
private void buttonOK_Click(object sender, EventArgs e)
{
Button button = sender as Button;
if (button == null)
return;
host.Chat(this,this.Channel, this.OwnerName, this.id, textBox.Text.Replace("&&","&"), CommunicationType.Say);
if (button != null) {
host.Chat(this, this.Channel, this.OwnerName, this.id, textBox.Text.Replace("&&", "&"), CommunicationType.Say);
this.Close();
}
}
}
}

View file

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<ProjectType>Local</ProjectType>
@ -125,274 +125,471 @@
</Compile>
<Compile Include="About.Designer.cs">
<DependentUpon>About.cs</DependentUpon>
<ExcludeFromStyleCop>false</ExcludeFromStyleCop>
</Compile>
<Compile Include="BugReport\BugReportForm.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="BugReport\BugReportForm.Designer.cs">
<DependentUpon>BugReportForm.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="BugReport\UploadBugReport.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="BZip2Decompress\BZip2.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="BZip2Decompress\BZip2Constants.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="BZip2Decompress\BZip2InputStream.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Decompressor\ZipEntry.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="BugReport\UploadBugReport.cs" />
<Compile Include="BZip2Decompress\BZip2.cs" />
<Compile Include="BZip2Decompress\BZip2Constants.cs" />
<Compile Include="BZip2Decompress\BZip2InputStream.cs" />
<Compile Include="Decompressor\ZipEntry.cs" />
<Compile Include="Docking\AutoHideStripBase.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockAreasEditor.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockAreasEditor.cs" />
<Compile Include="Docking\DockContent.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockContentCollection.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockContentEventArgs.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockContentHandler.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockOutlineBase.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockContentCollection.cs" />
<Compile Include="Docking\DockContentEventArgs.cs" />
<Compile Include="Docking\DockContentHandler.cs" />
<Compile Include="Docking\DockOutlineBase.cs" />
<Compile Include="Docking\DockPane.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPane.SplitterControl.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPaneCaptionBase.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPaneCollection.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPaneCollection.cs" />
<Compile Include="Docking\DockPanel.AutoHideWindow.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPanel.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPanel.DockDragHandler.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPanel.DragHandler.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPanel.FocusManager.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPanel.MdiClientController.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPanel.Persistor.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPanel.SplitterDragHandler.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPanelExtender.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPanelSkin.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockPanelExtender.cs" />
<Compile Include="Docking\DockPanelSkin.cs" />
<Compile Include="Docking\DockPaneStripBase.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockWindow.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockWindow.SplitterControl.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockWindowCollection.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DockWindowCollection.cs" />
<Compile Include="Docking\DragForm.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\DummyControl.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Enums.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Enums.cs" />
<Compile Include="Docking\FloatWindow.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\FloatWindowCollection.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Helpers\DockHelper.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Helpers\DrawHelper.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Helpers\ResourceHelper.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Helpers\Win32Helper.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\FloatWindowCollection.cs" />
<Compile Include="Docking\Helpers\DockHelper.cs" />
<Compile Include="Docking\Helpers\DrawHelper.cs" />
<Compile Include="Docking\Helpers\ResourceHelper.cs" />
<Compile Include="Docking\Helpers\Win32Helper.cs" />
<Compile Include="Docking\InertButtonBase.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Interfaces.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Localization.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Measures.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\NestedDockingStatus.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\NestedPaneCollection.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Resources.Designer.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Interfaces.cs" />
<Compile Include="Docking\Localization.cs" />
<Compile Include="Docking\Measures.cs" />
<Compile Include="Docking\NestedDockingStatus.cs" />
<Compile Include="Docking\NestedPaneCollection.cs" />
<Compile Include="Docking\Resources.Designer.cs" />
<Compile Include="Docking\SplitterBase.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Strings.Designer.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\VisibleNestedPaneCollection.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Strings.Designer.cs" />
<Compile Include="Docking\VisibleNestedPaneCollection.cs" />
<Compile Include="Docking\VS2005AutoHideStrip.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\VS2005DockPaneCaption.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\VS2005DockPaneStrip.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Win32\Enums.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Win32\NativeMethods.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\KeyWords.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Docking\Win32\Enums.cs" />
<Compile Include="Docking\Win32\NativeMethods.cs" />
<Compile Include="Editor\KeyWords.cs" />
<None Include="Editor\RoundCorners.cs" />
<Compile Include="Decompressor\Decompress.cs" />
<Compile Include="Editor\MsXsltContext.cs" />
<Compile Include="Helpers\HTTPRequest.cs" />
<Compile Include="Helpers\OutlineHelper.cs" />
<Compile Include="Helpers\SendMyKeys.cs" />
<Compile Include="Helpers\TextFileEncodingDetector.cs" />
<Compile Include="BZip2Decompress\IChecksum.cs" />
<Compile Include="Decompressor\Decompress.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\MsXsltContext.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\HTTPRequest.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\OutlineHelper.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\SendMyKeys.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\TextFileEncodingDetector.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="BZip2Decompress\IChecksum.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="llTextBoxForm.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="llTextBoxForm.Designer.cs">
<DependentUpon>llTextBoxForm.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Plugins\Generic.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\SecondLifeConstants.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\SecondLifeEvents.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\SecondLifeFunctions.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Plugins\Generic.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SecondLife\SecondLifeConstants.cs" />
<Compile Include="SecondLife\SecondLifeEvents.cs" />
<Compile Include="SecondLife\SecondLifeFunctions.cs" />
<Compile Include="Solution\GuidProperty.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Solution\GuidProperty.Designer.cs">
<DependentUpon>GuidProperty.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\CodeCompletion.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\CompilerHelper.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\FileAssociator.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\GetTemplate.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\Measure.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\PrinterHelper.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\TaskQueue.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\XMLRPC.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\OopsFormatter.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\CodeCompletion.cs" />
<Compile Include="Helpers\CompilerHelper.cs" />
<Compile Include="Helpers\FileAssociator.cs" />
<Compile Include="Helpers\GetTemplate.cs" />
<Compile Include="Helpers\Measure.cs" />
<Compile Include="Helpers\PrinterHelper.cs" />
<Compile Include="Helpers\TaskQueue.cs" />
<Compile Include="Helpers\XMLRPC.cs" />
<Compile Include="Helpers\OopsFormatter.cs" />
<Compile Include="Solution\NewProject.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Solution\NewProject.Designer.cs">
<DependentUpon>NewProject.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="PermissionsForm.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="PermissionsForm.Designer.cs">
<DependentUpon>PermissionsForm.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="GotoWindow.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="GotoWindow.Designer.cs">
<DependentUpon>GotoWindow.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\Numbered.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\Numbered.Designer.cs">
<DependentUpon>Numbered.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\TooltipWindow.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\TooltipWindow.designer.cs">
<DependentUpon>TooltipWindow.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\GListBox.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\GListBox.designer.cs">
<DependentUpon>GListBox.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\GListBoxWindow.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\GListBoxWindow.designer.cs">
<DependentUpon>GListBoxWindow.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\RichLabel.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\RichLabel.Designer.cs">
<DependentUpon>RichLabel.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="llDialogForm.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="llDialogForm.Designer.cs">
<DependentUpon>llDialogForm.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Plugins\LSLint.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Plugins\Particles.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Plugins\LSLint.cs" />
<Compile Include="Plugins\Particles.cs" />
<Compile Include="Browser.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Browser.Designer.cs">
<DependentUpon>Browser.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\AutoFormatter.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\AutoFormatter.cs" />
<Compile Include="EditForm.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="EditForm.Designer.cs">
<DependentUpon>EditForm.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="FindWindow.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="FindWindow.Designer.cs">
<DependentUpon>FindWindow.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="LSLEditorForm.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="LSLEditorForm.Designer.cs">
<DependentUpon>LSLEditorForm.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\Settings.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\Settings.cs" />
<Compile Include="Helpers\GroupboxEvent.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\LSL2CSharp.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\LSL2CSharp.cs" />
<Compile Include="Editor\NumberedTextBoxUC.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Editor\NumberedTextBoxUC.designer.cs">
<DependentUpon>NumberedTextBoxUC.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="RuntimeConsole.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="RuntimeConsole.Designer.cs">
<DependentUpon>RuntimeConsole.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\SecondLifeHst.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\SecondLifeHst.cs" />
<Compile Include="Helpers\SmtpClient.cs">
<SubType>Code</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\Float.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\String.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\list.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\rotation.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\key.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\integer.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\vector.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SecondLife\Float.cs" />
<Compile Include="SecondLife\String.cs" />
<Compile Include="SecondLife\list.cs" />
<Compile Include="SecondLife\rotation.cs" />
<Compile Include="SecondLife\key.cs" />
<Compile Include="SecondLife\integer.cs" />
<Compile Include="SecondLife\vector.cs" />
<Compile Include="Editor\SyntaxRichTextBox.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\WebRequestClass.cs">
<SubType>Code</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<EmbeddedResource Include="About.resx">
<SubType>Designer</SubType>
@ -400,139 +597,187 @@
</EmbeddedResource>
<Compile Include="SecondLife\SecondLifeMain.cs">
<SubType>Code</SubType>
<ExcludeFromStyleCop>false</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\TabControlExtended.cs">
<SubType>Component</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Helpers\TabControlExtended.Designer.cs">
<DependentUpon>TabControlExtended.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SimulatorConsole.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SimulatorConsole.Designer.cs">
<DependentUpon>SimulatorConsole.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Solution\SolutionExplorer.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Solution\SolutionExplorer.designer.cs">
<DependentUpon>SolutionExplorer.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Solution\SvnAguments.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Solution\SvnAguments.Designer.cs">
<DependentUpon>SvnAguments.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Plugins\Svn.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="BZip2Decompress\StrangeCrc.cs">
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Plugins\Svn.cs" />
<Compile Include="BZip2Decompress\StrangeCrc.cs" />
<Compile Include="SyntaxError.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="SyntaxError.Designer.cs">
<DependentUpon>SyntaxError.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\EnvironmentPlugins.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\EnvironmentPlugins.Designer.cs">
<DependentUpon>EnvironmentPlugins.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\RuntimeGeneral.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\RuntimeGeneral.Designer.cs">
<DependentUpon>RuntimeGeneral.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\TextEditorCodeCompletion.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\TextEditorCodeCompletion.Designer.cs">
<DependentUpon>TextEditorCodeCompletion.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\EnvironmentBrowser.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\EnvironmentBrowser.Designer.cs">
<DependentUpon>EnvironmentBrowser.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\ProjectSettings.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\ProjectSettings.Designer.cs">
<DependentUpon>ProjectSettings.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\RuntimeInternal.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\RuntimeInternal.Designer.cs">
<DependentUpon>RuntimeInternal.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\RuntimeSmtp.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\RuntimeSmtp.Designer.cs">
<DependentUpon>RuntimeSmtp.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\RuntimeExternal.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\RuntimeExternal.Designer.cs">
<DependentUpon>RuntimeExternal.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\EnvironmentGeneral.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\EnvironmentGeneral.Designer.cs">
<DependentUpon>EnvironmentGeneral.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\TextEditorFontColors.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\TextEditorFontColors.Designer.cs">
<DependentUpon>TextEditorFontColors.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\EnvironmentHelp.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\EnvironmentHelp.Designer.cs">
<DependentUpon>EnvironmentHelp.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\TextEditorGeneral.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\TextEditorGeneral.Designer.cs">
<DependentUpon>TextEditorGeneral.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\ToolsOptions.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\ToolsOptions.Designer.cs">
<DependentUpon>ToolsOptions.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\VersionControlGeneral.cs">
<SubType>UserControl</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Tools\VersionControlGeneral.Designer.cs">
<DependentUpon>VersionControlGeneral.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="ToolWindow.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="ToolWindow.Designer.cs">
<DependentUpon>ToolWindow.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="UpdateApplicationForm.cs">
<SubType>Form</SubType>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="UpdateApplicationForm.Designer.cs">
<DependentUpon>UpdateApplicationForm.cs</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<Compile Include="Web References\org.lsleditor.www\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.map</DependentUpon>
<ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>
<EmbeddedResource Include="Browser.resx">
<SubType>Designer</SubType>
@ -871,6 +1116,7 @@
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(ProgramFiles)\MSBuild\StyleCop\v4.7\StyleCop.targets" />
<PropertyGroup>
<PreBuildEvent>"$(FrameworkSDKDir)Bin\rc.exe" /r "$(ProjectDir)$(TargetName).rc"</PreBuildEvent>
<PostBuildEvent>$(SolutionDir)\..\build\AssemblyRevisionIncrementer.exe /t="$(SolutionDir)\Properties\AssemblyInfo.cs"</PostBuildEvent>