From 571f0343956edbd049d2bcaf439de558c8aed3c5 Mon Sep 17 00:00:00 2001 From: Ima Mechanique Date: Mon, 15 Jul 2013 21:00:09 +0100 Subject: [PATCH] Updating first batch of files. --- trunk/About.Designer.cs | 58 ++++-- trunk/About.cs | 24 ++- trunk/Properties/AssemblyInfo.cs | 4 +- trunk/SecondLife/SecondLifeConstants.cs | 1 + trunk/SecondLife/SecondLifeFunctions.cs | 78 ++++---- trunk/SecondLife/SecondLifeMain.cs | 250 ++++++++++++++---------- 6 files changed, 260 insertions(+), 155 deletions(-) diff --git a/trunk/About.Designer.cs b/trunk/About.Designer.cs index 1eb81b3..180ba9a 100644 --- a/trunk/About.Designer.cs +++ b/trunk/About.Designer.cs @@ -1,22 +1,60 @@ namespace LSLEditor { - partial class About + /// + /// About dialogue box form. + /// + public partial class About { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; + /// + /// Container for LSLife picture. + /// + private System.Windows.Forms.PictureBox pictureBox1; + + /// + /// Container to hold all the elements. + /// + private System.Windows.Forms.GroupBox groupBox1; + + /// + /// OK Button. + /// + private System.Windows.Forms.Button button1; + + /// + /// Web Browser. + /// + private System.Windows.Forms.WebBrowser webBrowser1; + + /// + /// Link label. + /// + private System.Windows.Forms.LinkLabel linkLabel1; + + /// + /// Version label. + /// + private System.Windows.Forms.Label label1; + + /// + /// LSL Editor label. + /// + private System.Windows.Forms.Label label2; + /// /// Clean up any resources being used. /// - /// true if managed resources should be disposed; otherwise, false. + /// True if managed resources should be disposed; otherwise, false. 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; } -} \ No newline at end of file +} diff --git a/trunk/About.cs b/trunk/About.cs index 36b3bdc..92b529e 100644 --- a/trunk/About.cs +++ b/trunk/About.cs @@ -42,18 +42,23 @@ // ******** // */ using System; +using System.ComponentModel; using System.IO; using System.Reflection; -using System.ComponentModel; using System.Windows.Forms; namespace LSLEditor { + /// About dialogue box form. public partial class About : Form { + /// + /// Initialises a new instance of the class. + /// + /// The parent form. public About(LSLEditorForm parent) { - InitializeComponent(); + this.InitializeComponent(); this.Icon = parent.Icon; @@ -61,16 +66,31 @@ namespace LSLEditor this.label2.Text = strVersion; } + /// + /// OK/Close button. + /// + /// + /// private void button1_Click(object sender, EventArgs e) { this.Close(); } + /// + /// Link to SourceForge page. + /// + /// + /// private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { System.Diagnostics.Process.Start(Properties.Settings.Default.ContactUrl); } + /// + /// Loads the page. + /// + /// + /// private void About_Load(object sender, EventArgs e) { string strExeFileName = Path.GetFileName(Assembly.GetExecutingAssembly().CodeBase); diff --git a/trunk/Properties/AssemblyInfo.cs b/trunk/Properties/AssemblyInfo.cs index 5f3912f..8f5d300 100644 --- a/trunk/Properties/AssemblyInfo.cs +++ b/trunk/Properties/AssemblyInfo.cs @@ -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.13")] +[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.13")] +[assembly: AssemblyFileVersionAttribute("2.999.999.117")] diff --git a/trunk/SecondLife/SecondLifeConstants.cs b/trunk/SecondLife/SecondLifeConstants.cs index 5228575..2d2a418 100644 --- a/trunk/SecondLife/SecondLifeConstants.cs +++ b/trunk/SecondLife/SecondLifeConstants.cs @@ -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"; diff --git a/trunk/SecondLife/SecondLifeFunctions.cs b/trunk/SecondLife/SecondLifeFunctions.cs index 0ecadc2..489b9a0 100644 --- a/trunk/SecondLife/SecondLifeFunctions.cs +++ b/trunk/SecondLife/SecondLifeFunctions.cs @@ -67,31 +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); + if (htLandBanList.ContainsKey(kID)) { + htLandBanList.Remove(kID); } - m_LandBanList.Add(kID, fHours); + 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); + if (htLandPassList.ContainsKey(kID)) { + htLandPassList.Remove(kID); } - m_LandPassList.Add(kID, fHours); + 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) @@ -659,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; } @@ -1029,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() @@ -1250,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) @@ -1291,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) @@ -1369,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() @@ -1382,8 +1382,8 @@ namespace LSLEditor public vector llGetScale() { - Verbose("llGetScale()=" + m_scale); - return m_scale; + Verbose("llGetScale()=" + vScale); + return vScale; } public String llGetScriptName() @@ -1416,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) @@ -1498,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; } @@ -2388,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); } } @@ -2498,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()"); } @@ -2524,7 +2524,7 @@ namespace LSLEditor public void llResetTime() { Verbose("llResetTime()"); - m_DateTimeScriptStarted = DateTime.Now.ToUniversalTime(); + dtDateTimeScriptStarted = DateTime.Now.ToUniversalTime(); } public integer llReturnObjectsByID(list lObjects) @@ -2833,7 +2833,7 @@ namespace LSLEditor public void llSetLocalRot(rotation rRotation) { - this.m_rotlocal = rRotation; + this.rRotationlocal = rRotation; Verbose("llSetLocalRot({0})", rRotation); } @@ -2864,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) @@ -2880,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) @@ -2899,7 +2899,7 @@ namespace LSLEditor { integer iResult = true; Verbose("llSetRegionPos({0})={1}", vPosition, iResult); - m_pos = vPosition; + this.vPosition = vPosition; return iResult; } @@ -2911,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) @@ -2928,7 +2928,7 @@ namespace LSLEditor public void llSetSitText(String sText) { Verbose(@"llSetSitText(""{0}"")", sText); - m_SitText = sText; + sSitText = sText; } public void llSetSoundQueueing(integer iQueueFlag) @@ -2938,7 +2938,7 @@ namespace LSLEditor public void llSetSoundRadius(Float fRadius) { - m_SoundRadius = fRadius; + fSoundRadius = fRadius; Verbose("llSetSoundRadius({0})", fRadius); } diff --git a/trunk/SecondLife/SecondLifeMain.cs b/trunk/SecondLife/SecondLifeMain.cs index ac95d71..0233c67 100644 --- a/trunk/SecondLife/SecondLifeMain.cs +++ b/trunk/SecondLife/SecondLifeMain.cs @@ -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 { + /// + /// Enumeration of Communication Types that the host understands + /// public enum CommunicationType { Whisper, Say, Shout, OwnerSay, RegionSay, RegionSayTo @@ -62,80 +64,109 @@ namespace LSLEditor public partial class SecondLife { - // Make friends with my host - public SecondLifeHost host; + /// + /// Holds the host object. + /// + private SecondLifeHost slhHost; #region members - // Random generator - private Random m_random; + /// + /// Random generator. + /// + private Random rdmRandom; - private DateTime m_DateTimeScriptStarted; + /// + /// Holds the time of the script starting execution. + /// + private DateTime dtDateTimeScriptStarted; - private Boolean m_AllowDrop = false; - private Hashtable m_LandPassList; + /// + /// Contains a boolean value indicating wether this object accepts other items to be dropped into it. + /// + private bool blnAllowDrop = false; - private Hashtable m_LandBanList; + /// + /// Contains a list of keys of avatars that may enter a parcel. + /// + private Hashtable htLandPassList; - private Float m_Volume; + /// + /// Contains a list of keys of avatars that may NOT enter a parcel. + /// + 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; + /// + /// Volume of sound played by this prim. + /// + 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 + /// + /// Initialises the class. + /// + 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) { host.VerboseMessage(strLine); } else { - host.VerboseMessage(string.Format(strLine, parameters)); + this.host.VerboseMessage(string.Format(strLine, parameters)); } } private void Chat(integer iChannel, string sText, CommunicationType ctHow) { - host.Chat(host, iChannel, host.GetObjectName(), host.GetKey(), sText, ctHow); + this.host.Chat(this.host, iChannel, this.host.GetObjectName(), this.host.GetKey(), sText, ctHow); } public void state(string strStateName) @@ -178,8 +209,9 @@ namespace LSLEditor 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. + /* 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"); @@ -188,7 +220,7 @@ namespace LSLEditor 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 = alCollection[i]; @@ -225,37 +257,46 @@ namespace LSLEditor return new list(items); } + /// + /// Implements the Comparer Interface for our custom types (Float, Integer, and String). + /// private class BucketComparer : IComparer { private integer iAscending; + + /// + /// Initialises the class. + /// + /// public BucketComparer(integer ascending) { this.iAscending = ascending; } + public int Compare(object x, object y) { int iResult = 0; - object A, B; + object objA, objB; object[] xx = x as object[]; object[] yy = y as object[]; if (iAscending == TRUE) { - A = xx[0]; - B = yy[0]; + objA = xx[0]; + objB = yy[0]; } else { - B = xx[0]; - A = yy[0]; + 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))) { - iResult = string.Compare(A.ToString(), B.ToString()); - } else if ((A is SecondLife.integer) && (B is SecondLife.integer)) { - iResult = SecondLife.integer.Compare((SecondLife.integer)A, (SecondLife.integer)B); - } else if ((A is SecondLife.Float) && (B is SecondLife.Float)) { - iResult = SecondLife.Float.Compare((SecondLife.Float)A, (SecondLife.Float)B); + 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); } return iResult; @@ -289,7 +330,9 @@ namespace LSLEditor } } - if (blnFound) continue; + if (blnFound) { + continue; + } for (int intJ = 0; intJ < lSpacers.Count; intJ++) { string strSpacer = lSpacers[intJ].ToString(); @@ -347,24 +390,25 @@ namespace LSLEditor return intReturn; } - 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, 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 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // B0 - 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 +////[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, 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 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // B0 + 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 #endregion #region Math Functions @@ -375,16 +419,23 @@ namespace LSLEditor private integer ModPow2(integer iValueX, integer iValueY, integer iModulus) { - if (!iValueX) return 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 = iValueY / p; - integer f = iValueY % p; - integer z = 1; - if (r) z = ModPow2(ModPow1(iValueX, p, iModulus), r, iModulus); - if (f) z = (z * ModPow1(iValueX, f, iModulus)) % iModulus; - return z; + 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 = iValueY / p; + integer f = iValueY % p; + integer z = 1; + 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 @@ -417,12 +468,14 @@ namespace LSLEditor private double GetAverage(double[] data) { try { - double DataTotal = 0; + double dblDataTotal = 0; for (int i = 0; i < data.Length; i++) { - DataTotal += data[i]; + dblDataTotal += data[i]; } - return SafeDivide(DataTotal, data.Length); - } catch (Exception) { throw; } + return SafeDivide(dblDataTotal, data.Length); + } catch (Exception) { + throw; + } } public double GetStandardDeviation(double[] dblNumbers) @@ -432,7 +485,7 @@ namespace LSLEditor dblSum += dblNumbers[i]; dblSumOfSqrs += Math.Pow(dblNumbers[i], 2); } - double dblTopSum = (dblNumbers.Length * dblSumOfSqrs) - (Math.Pow(dblSum, 2)); + double dblTopSum = (dblNumbers.Length * dblSumOfSqrs) - Math.Pow(dblSum, 2); double dblN = (double)dblNumbers.Length; return Math.Sqrt(dblTopSum / (dblN * (dblN - 1))); } @@ -444,7 +497,8 @@ namespace LSLEditor if ((dblValue1 != 0) && (dblValue2 != 0)) { dblResult = dblValue1 / dblValue2; } - } catch { } + } catch { + } return dblResult; }