diff --git a/TODO.txt b/TODO.txt new file mode 100644 index 0000000..60ea381 --- /dev/null +++ b/TODO.txt @@ -0,0 +1,5 @@ +LSL-Editor v3 porting TODO list +The aim of this overhaul of the code-base is to make it multi-platform friendly and gain a better insight into the workings of all areas of the code. Hopefully this will lead to removal of any cruft and a leaner code-base. +=============================== +1) Port window UI/control to GTK+. +2) Clean up all the 'syntax' stuff. Alphabetise all constants, events, functions, etc.) diff --git a/trunk/Helpers/HTTPRequest.cs b/trunk/Helpers/HTTPRequest.cs index fac4e47..4a86305 100644 --- a/trunk/Helpers/HTTPRequest.cs +++ b/trunk/Helpers/HTTPRequest.cs @@ -103,7 +103,7 @@ namespace LSLEditor System.Drawing.Point point = Properties.Settings.Default.RegionCorner; SecondLife.vector RegionCorner = new SecondLife.vector(point.X, point.Y, 0); - SecondLife.vector pos = secondlife.llGetLocalPos(false); + SecondLife.vector pos = secondlife.GetLocalPos; wc.Headers.Add("X-SecondLife-Shard", Properties.Settings.Default.XSecondLifeShard); wc.Headers.Add("X-SecondLife-Object-Name", secondlife.host.GetObjectName()); diff --git a/trunk/Resource/ConfLSL.xml b/trunk/Resource/ConfLSL.xml index 730b90b..9c35136 100644 --- a/trunk/Resource/ConfLSL.xml +++ b/trunk/Resource/ConfLSL.xml @@ -1327,6 +1327,12 @@ returns 0. + + list llGetStaticPath(vector Start, vector End, float Radius, list Parameters); + + Returns a list of position vectors indicating pathfinding waypoints between positions at start and end, for a character of a given radius. The waypoints this function returns are for the 'static' nav mesh, meaning that objects set to "movable obstacle" or "movable phantom" are ignored. + + integer llGetStatus(integer status); @@ -3303,7 +3309,7 @@ - llWhisper(integer channel, string text); + void llWhisper(integer channel, string text); Whisper text on channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are @@ -3317,11 +3323,11 @@ Returns the wind velocity below the object position + offset. - - string llXorBase64StringsCorrect(string s1, string s2) + + string llXorBase64(string sText1, string sText2); - Performs an xor on two Base64 strings and returns a Base64 string. - s2 repeats if it is shorter than s1. + Performs an XOR on two Base64 strings and returns a Base64 string. + sText2 repeats if it is shorter than sText1. This function is for encrypting data. Put your data in s1 and your key in s2 to encrypt or put the encrypted data into s1 with the same key in s2 to decrypt again. @@ -4687,8 +4693,9 @@ - - + + + If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior. Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both. Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list. @@ -4858,21 +4865,18 @@ Gets the attachment point to which the object is attached. - - Gets the object's creator key. + + Gets the object's creator key. If id is an avatar, a NULL_KEY is returned. - - Gets the object's description. + Gets the object's description. If id is an avatar, an empty string is returned. - - Gets the prims's group key. + Gets the prims's group key. If id is an avatar, a NULL_KEY is returned. Gets the object's name. - - Gets an object's owner's key. + Gets an object's owner's key. If id is group owned, a NULL_KEY is returned. Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants. @@ -5108,14 +5112,16 @@ Disables profiling Enables memory profiling - Triggered when an llEvade character thinks it has hidden from its pursuer. - Triggered when an llEvade character switches from hiding to running + Triggered when an llEvade character thinks it has hidden from its pursuer. + Triggered when an llEvade character switches from hiding to running + Goal is not on the navigation-mesh and cannot be reached. Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it. This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message. There's no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable. Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region. + Goal is no longer reachable for some reason - e.g., an obstacle blocks the path. Character has reached the goal and will stop or choose a new goal (if wandering). Character is near current goal. @@ -5190,6 +5196,7 @@ + diff --git a/trunk/Resource/ReleaseNotes.htm b/trunk/Resource/ReleaseNotes.htm index e866fa8..afa0000 100644 --- a/trunk/Resource/ReleaseNotes.htm +++ b/trunk/Resource/ReleaseNotes.htm @@ -6,6 +6,23 @@
+

2013-07-00 - Release 2.54.0

+
+ * Constants Added: +
    +
  • AVOID_NONE
  • +
  • OBJECT_CHARACTER_TIME
  • +
  • PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED
  • +
  • PU_FAILURE_PARCEL_UNREACHABLE
  • +
+
+
+ * Functions Added: +
    +
  • llGetStaticPath
  • +
  • llXorBase64
  • +
+

2013-07-07 - Release 2.53.1

* Fixes diff --git a/trunk/SecondLife/SecondLifeMain.cs b/trunk/SecondLife/SecondLifeMain.cs index d28107f..e63a471 100644 --- a/trunk/SecondLife/SecondLifeMain.cs +++ b/trunk/SecondLife/SecondLifeMain.cs @@ -92,8 +92,18 @@ namespace LSLEditor #endregion - #region constructor - public SecondLife() + #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; } + } + + #endregion + + #region constructor + public SecondLife() { host = null; m_random = new Random(); @@ -279,6 +289,7 @@ namespace LSLEditor public const int ATTACH_HUD_BOTTOM = 37; public const int ATTACH_HUD_BOTTOM_RIGHT = 38; + public const int AVOID_NONE = 0; public const int AVOID_CHARACTERS = 1; public const int AVOID_DYNAMIC_OBSTACLES = 2; @@ -466,6 +477,7 @@ namespace LSLEditor public const int MASK_OWNER = 1; public const int OBJECT_ATTACHED_POINT = 19; + public const int OBJECT_CHARACTER_TIME = 17; public const int OBJECT_NAME = 1; public const int OBJECT_DESC = 2; public const int OBJECT_POS = 3; @@ -739,6 +751,8 @@ namespace LSLEditor public const int PU_EVADE_HIDDEN = 0x07; public const int PU_EVADE_SPOTTED = 0x08; + public const int PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED = 10; + public const int PU_FAILURE_PARCEL_UNREACHABLE = 11; public const int PU_FAILURE_INVALID_GOAL = 0x03; public const int PU_FAILURE_INVALID_START = 0x02; public const int PU_FAILURE_NO_VALID_DESTINATION = 0x06; @@ -2210,11 +2224,9 @@ namespace LSLEditor return iLength; } - public vector llGetLocalPos(Boolean bVerbose = true) + public vector llGetLocalPos() { - if (bVerbose) { - Verbose("llGetLocalPos()={0}", m_pos); - } + Verbose("llGetLocalPos()={0}", m_pos); return m_pos; } @@ -2609,6 +2621,13 @@ namespace LSLEditor return m_start_parameter; } + public list llGetStaticPath(vector vStart, vector vEnd, Float fRadius, list lParameters) + { + list lReturn = new list(); + Verbose("llGetStaticPath({0}, {1}, {2}, {3})={4}", vStart, vEnd, fRadius, lParameters.ToVerboseString(), lReturn.ToVerboseString()); + return lReturn; + } + public integer llGetStatus(integer iRequestedStatus) { integer iStatus = 0; @@ -4482,10 +4501,24 @@ namespace LSLEditor return vector.ZERO_VECTOR; } - public String llXorBase64StringsCorrect(String s1, String s2) + public String llXorBase64(String sText1, String sText2) + { + string sResult = ""; + Verbose(@"llXorBase64(""{0}"",""{1}"")=""{2}""", sText1, sText2, sResult); + return sResult; + } + + public String llXorBase64Strings(String sText1, String sText2) + { + string sResult = ""; + Verbose(@"llXorBase64Strings(""{0}"",""{1}"")=""{2}""", sText1, sText2, sResult); + return sResult; + } + + public String llXorBase64StringsCorrect(String sText1, String sText2) { - string S1 = Base64ToString(s1.ToString()); - string S2 = Base64ToString(s2.ToString()); + string S1 = Base64ToString(sText1.ToString()); + string S2 = Base64ToString(sText2.ToString()); int intLength = S1.Length; if (S2.Length == 0) S2 = " "; @@ -4495,9 +4528,9 @@ namespace LSLEditor StringBuilder sb = new StringBuilder(); for (int intI = 0; intI < intLength; intI++) sb.Append((char)(S1[intI] ^ S2[intI])); - string result = StringToBase64(sb.ToString()); - Verbose(@"llXorBase64StringsCorrect(""{0}"",""{1}"")=""{2}""", s1, s2, result); - return result; + string sResult = StringToBase64(sb.ToString()); + Verbose(@"llXorBase64StringsCorrect(""{0}"",""{1}"")=""{2}""", sText1, sText2, sResult); + return sResult; } #endregion } diff --git a/trunk/SecondLife/json.cs b/trunk/SecondLife/json.cs deleted file mode 100644 index aec1ba3..0000000 --- a/trunk/SecondLife/json.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections; -using System.Text; - -namespace LSLEditor -{ - public partial class SecondLife - { - public class jsonObject : DictionaryBase - { - - } - } -} diff --git a/trunk/lsleditor.csproj b/trunk/lsleditor.csproj index f1b15d1..8200ef0 100644 --- a/trunk/lsleditor.csproj +++ b/trunk/lsleditor.csproj @@ -1,4 +1,4 @@ - + Local @@ -251,7 +251,6 @@ - Form