From 6b7930104bdb845d3b9c085dc04f52b6446f23b1 Mon Sep 17 00:00:00 2001
From: lbsa71
Date: Tue, 24 Jun 2008 21:09:49 +0000
Subject: * Applied patch from Melanie, mantis issue #1581 - "Refactor LSL
language, api and compiler out of XEngine" "First stage in a major Script
Engine refactor, that will result in the LSL implementaions ebing
reconverged. Not there yet, but one major part is done." Thank you, Melanie!
---
.../Shared/Api/Runtime/LSL_Constants.cs | 421 ++
.../ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs | 1732 ++++++
.../ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 199 +
...m.Region.ScriptEngine.Shared.Api.Runtime.csproj | 161 +
...ion.ScriptEngine.Shared.Api.Runtime.csproj.user | 12 +
...egion.ScriptEngine.Shared.Api.Runtime.dll.build | 62 +
...nSim.Region.ScriptEngine.Shared.Api.Runtime.mdp | 43 +
.../ScriptEngine/Shared/Api/Runtime/ScriptBase.cs | 124 +
.../Shared/Api/Runtime/YieldProlog/Atom.cs | 218 +
.../Shared/Api/Runtime/YieldProlog/BagofAnswers.cs | 234 +
.../Api/Runtime/YieldProlog/FindallAnswers.cs | 103 +
.../Shared/Api/Runtime/YieldProlog/Functor.cs | 188 +
.../Shared/Api/Runtime/YieldProlog/Functor1.cs | 111 +
.../Shared/Api/Runtime/YieldProlog/Functor2.cs | 154 +
.../Shared/Api/Runtime/YieldProlog/Functor3.cs | 133 +
.../Api/Runtime/YieldProlog/IndexedAnswers.cs | 288 +
.../Shared/Api/Runtime/YieldProlog/ListPair.cs | 156 +
.../Shared/Api/Runtime/YieldProlog/Parser.cs | 4457 +++++++++++++++
.../Api/Runtime/YieldProlog/PrologException.cs | 71 +
.../YieldProlog/UndefinedPredicateException.cs | 62 +
.../Shared/Api/Runtime/YieldProlog/Variable.cs | 196 +
.../Shared/Api/Runtime/YieldProlog/YP.cs | 1644 ++++++
.../Shared/Api/Runtime/YieldProlog/YPCompiler.cs | 5651 ++++++++++++++++++++
23 files changed, 16420 insertions(+)
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.csproj
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.csproj.user
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.dll.build
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.mdp
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Atom.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/FindallAnswers.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor1.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor2.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor3.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/IndexedAnswers.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/ListPair.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Parser.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/PrologException.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/UndefinedPredicateException.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Variable.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs
create mode 100644 OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YPCompiler.cs
(limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Runtime')
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
new file mode 100644
index 0000000..69be69b
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
@@ -0,0 +1,421 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
+using rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
+
+namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
+{
+ public partial class ScriptBaseClass : MarshalByRefObject
+ {
+ // LSL CONSTANTS
+ public const int TRUE = 1;
+ public const int FALSE = 0;
+
+ public const int STATUS_PHYSICS = 1;
+ public const int STATUS_ROTATE_X = 2;
+ public const int STATUS_ROTATE_Y = 4;
+ public const int STATUS_ROTATE_Z = 8;
+ public const int STATUS_PHANTOM = 16;
+ public const int STATUS_SANDBOX = 32;
+ public const int STATUS_BLOCK_GRAB = 64;
+ public const int STATUS_DIE_AT_EDGE = 128;
+ public const int STATUS_RETURN_AT_EDGE = 256;
+ public const int STATUS_CAST_SHADOWS = 512;
+
+ public const int AGENT = 1;
+ public const int ACTIVE = 2;
+ public const int PASSIVE = 4;
+ public const int SCRIPTED = 8;
+
+ public const int CONTROL_FWD = 1;
+ public const int CONTROL_BACK = 2;
+ public const int CONTROL_LEFT = 4;
+ public const int CONTROL_RIGHT = 8;
+ public const int CONTROL_UP = 16;
+ public const int CONTROL_DOWN = 32;
+ public const int CONTROL_ROT_LEFT = 256;
+ public const int CONTROL_ROT_RIGHT = 512;
+ public const int CONTROL_LBUTTON = 268435456;
+ public const int CONTROL_ML_LBUTTON = 1073741824;
+
+ //Permissions
+ public const int PERMISSION_DEBIT = 2;
+ public const int PERMISSION_TAKE_CONTROLS = 4;
+ public const int PERMISSION_REMAP_CONTROLS = 8;
+ public const int PERMISSION_TRIGGER_ANIMATION = 16;
+ public const int PERMISSION_ATTACH = 32;
+ public const int PERMISSION_RELEASE_OWNERSHIP = 64;
+ public const int PERMISSION_CHANGE_LINKS = 128;
+ public const int PERMISSION_CHANGE_JOINTS = 256;
+ public const int PERMISSION_CHANGE_PERMISSIONS = 512;
+ public const int PERMISSION_TRACK_CAMERA = 1024;
+
+ public const int AGENT_FLYING = 1;
+ public const int AGENT_ATTACHMENTS = 2;
+ public const int AGENT_SCRIPTED = 4;
+ public const int AGENT_MOUSELOOK = 8;
+ public const int AGENT_SITTING = 16;
+ public const int AGENT_ON_OBJECT = 32;
+ public const int AGENT_AWAY = 64;
+ public const int AGENT_WALKING = 128;
+ public const int AGENT_IN_AIR = 256;
+ public const int AGENT_TYPING = 512;
+ public const int AGENT_CROUCHING = 1024;
+ public const int AGENT_BUSY = 2048;
+ public const int AGENT_ALWAYS_RUN = 4096;
+
+ //Particle Systems
+ public const int PSYS_PART_INTERP_COLOR_MASK = 1;
+ public const int PSYS_PART_INTERP_SCALE_MASK = 2;
+ public const int PSYS_PART_BOUNCE_MASK = 4;
+ public const int PSYS_PART_WIND_MASK = 8;
+ public const int PSYS_PART_FOLLOW_SRC_MASK = 16;
+ public const int PSYS_PART_FOLLOW_VELOCITY_MASK = 32;
+ public const int PSYS_PART_TARGET_POS_MASK = 64;
+ public const int PSYS_PART_TARGET_LINEAR_MASK = 128;
+ public const int PSYS_PART_EMISSIVE_MASK = 256;
+ public const int PSYS_PART_FLAGS = 0;
+ public const int PSYS_PART_START_COLOR = 1;
+ public const int PSYS_PART_START_ALPHA = 2;
+ public const int PSYS_PART_END_COLOR = 3;
+ public const int PSYS_PART_END_ALPHA = 4;
+ public const int PSYS_PART_START_SCALE = 5;
+ public const int PSYS_PART_END_SCALE = 6;
+ public const int PSYS_PART_MAX_AGE = 7;
+ public const int PSYS_SRC_ACCEL = 8;
+ public const int PSYS_SRC_PATTERN = 9;
+ public const int PSYS_SRC_INNERANGLE = 10;
+ public const int PSYS_SRC_OUTERANGLE = 11;
+ public const int PSYS_SRC_TEXTURE = 12;
+ public const int PSYS_SRC_BURST_RATE = 13;
+ public const int PSYS_SRC_BURST_PART_COUNT = 15;
+ public const int PSYS_SRC_BURST_RADIUS = 16;
+ public const int PSYS_SRC_BURST_SPEED_MIN = 17;
+ public const int PSYS_SRC_BURST_SPEED_MAX = 18;
+ public const int PSYS_SRC_MAX_AGE = 19;
+ public const int PSYS_SRC_TARGET_KEY = 20;
+ public const int PSYS_SRC_OMEGA = 21;
+ public const int PSYS_SRC_ANGLE_BEGIN = 22;
+ public const int PSYS_SRC_ANGLE_END = 23;
+ public const int PSYS_SRC_PATTERN_DROP = 1;
+ public const int PSYS_SRC_PATTERN_EXPLODE = 2;
+ public const int PSYS_SRC_PATTERN_ANGLE = 4;
+ public const int PSYS_SRC_PATTERN_ANGLE_CONE = 8;
+ public const int PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY = 16;
+
+ public const int VEHICLE_TYPE_NONE = 0;
+ public const int VEHICLE_TYPE_SLED = 1;
+ public const int VEHICLE_TYPE_CAR = 2;
+ public const int VEHICLE_TYPE_BOAT = 3;
+ public const int VEHICLE_TYPE_AIRPLANE = 4;
+ public const int VEHICLE_TYPE_BALLOON = 5;
+ public const int VEHICLE_LINEAR_FRICTION_TIMESCALE = 16;
+ public const int VEHICLE_ANGULAR_FRICTION_TIMESCALE = 17;
+ public const int VEHICLE_LINEAR_MOTOR_DIRECTION = 18;
+ public const int VEHICLE_LINEAR_MOTOR_OFFSET = 20;
+ public const int VEHICLE_ANGULAR_MOTOR_DIRECTION = 19;
+ public const int VEHICLE_HOVER_HEIGHT = 24;
+ public const int VEHICLE_HOVER_EFFICIENCY = 25;
+ public const int VEHICLE_HOVER_TIMESCALE = 26;
+ public const int VEHICLE_BUOYANCY = 27;
+ public const int VEHICLE_LINEAR_DEFLECTION_EFFICIENCY = 28;
+ public const int VEHICLE_LINEAR_DEFLECTION_TIMESCALE = 29;
+ public const int VEHICLE_LINEAR_MOTOR_TIMESCALE = 30;
+ public const int VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE = 31;
+ public const int VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY = 32;
+ public const int VEHICLE_ANGULAR_DEFLECTION_TIMESCALE = 33;
+ public const int VEHICLE_ANGULAR_MOTOR_TIMESCALE = 34;
+ public const int VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE = 35;
+ public const int VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY = 36;
+ public const int VEHICLE_VERTICAL_ATTRACTION_TIMESCALE = 37;
+ public const int VEHICLE_BANKING_EFFICIENCY = 38;
+ public const int VEHICLE_BANKING_MIX = 39;
+ public const int VEHICLE_BANKING_TIMESCALE = 40;
+ public const int VEHICLE_REFERENCE_FRAME = 44;
+ public const int VEHICLE_FLAG_NO_DEFLECTION_UP = 1;
+ public const int VEHICLE_FLAG_LIMIT_ROLL_ONLY = 2;
+ public const int VEHICLE_FLAG_HOVER_WATER_ONLY = 4;
+ public const int VEHICLE_FLAG_HOVER_TERRAIN_ONLY = 8;
+ public const int VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT = 16;
+ public const int VEHICLE_FLAG_HOVER_UP_ONLY = 32;
+ public const int VEHICLE_FLAG_LIMIT_MOTOR_UP = 64;
+ public const int VEHICLE_FLAG_MOUSELOOK_STEER = 128;
+ public const int VEHICLE_FLAG_MOUSELOOK_BANK = 256;
+ public const int VEHICLE_FLAG_CAMERA_DECOUPLED = 512;
+
+ public const int INVENTORY_ALL = -1;
+ public const int INVENTORY_NONE = -1;
+ public const int INVENTORY_TEXTURE = 0;
+ public const int INVENTORY_SOUND = 1;
+ public const int INVENTORY_LANDMARK = 3;
+ public const int INVENTORY_CLOTHING = 5;
+ public const int INVENTORY_OBJECT = 6;
+ public const int INVENTORY_NOTECARD = 7;
+ public const int INVENTORY_SCRIPT = 10;
+ public const int INVENTORY_BODYPART = 13;
+ public const int INVENTORY_ANIMATION = 20;
+ public const int INVENTORY_GESTURE = 21;
+
+ public const int ATTACH_CHEST = 1;
+ public const int ATTACH_HEAD = 2;
+ public const int ATTACH_LSHOULDER = 3;
+ public const int ATTACH_RSHOULDER = 4;
+ public const int ATTACH_LHAND = 5;
+ public const int ATTACH_RHAND = 6;
+ public const int ATTACH_LFOOT = 7;
+ public const int ATTACH_RFOOT = 8;
+ public const int ATTACH_BACK = 9;
+ public const int ATTACH_PELVIS = 10;
+ public const int ATTACH_MOUTH = 11;
+ public const int ATTACH_CHIN = 12;
+ public const int ATTACH_LEAR = 13;
+ public const int ATTACH_REAR = 14;
+ public const int ATTACH_LEYE = 15;
+ public const int ATTACH_REYE = 16;
+ public const int ATTACH_NOSE = 17;
+ public const int ATTACH_RUARM = 18;
+ public const int ATTACH_RLARM = 19;
+ public const int ATTACH_LUARM = 20;
+ public const int ATTACH_LLARM = 21;
+ public const int ATTACH_RHIP = 22;
+ public const int ATTACH_RULEG = 23;
+ public const int ATTACH_RLLEG = 24;
+ public const int ATTACH_LHIP = 25;
+ public const int ATTACH_LULEG = 26;
+ public const int ATTACH_LLLEG = 27;
+ public const int ATTACH_BELLY = 28;
+ public const int ATTACH_RPEC = 29;
+ public const int ATTACH_LPEC = 30;
+
+ public const int LAND_LEVEL = 0;
+ public const int LAND_RAISE = 1;
+ public const int LAND_LOWER = 2;
+ public const int LAND_SMOOTH = 3;
+ public const int LAND_NOISE = 4;
+ public const int LAND_REVERT = 5;
+ public const int LAND_SMALL_BRUSH = 1;
+ public const int LAND_MEDIUM_BRUSH = 2;
+ public const int LAND_LARGE_BRUSH = 3;
+
+ //Agent Dataserver
+ public const int DATA_ONLINE = 1;
+ public const int DATA_NAME = 2;
+ public const int DATA_BORN = 3;
+ public const int DATA_RATING = 4;
+ public const int DATA_SIM_POS = 5;
+ public const int DATA_SIM_STATUS = 6;
+ public const int DATA_SIM_RATING = 7;
+ public const int DATA_PAYINFO = 8;
+
+ public const int ANIM_ON = 1;
+ public const int LOOP = 2;
+ public const int REVERSE = 4;
+ public const int PING_PONG = 8;
+ public const int SMOOTH = 16;
+ public const int ROTATE = 32;
+ public const int SCALE = 64;
+ public const int ALL_SIDES = -1;
+ public const int LINK_SET = -1;
+ public const int LINK_ROOT = 1;
+ public const int LINK_ALL_OTHERS = -2;
+ public const int LINK_ALL_CHILDREN = -3;
+ public const int LINK_THIS = -4;
+ public const int CHANGED_INVENTORY = 1;
+ public const int CHANGED_COLOR = 2;
+ public const int CHANGED_SHAPE = 4;
+ public const int CHANGED_SCALE = 8;
+ public const int CHANGED_TEXTURE = 16;
+ public const int CHANGED_LINK = 32;
+ public const int CHANGED_ALLOWED_DROP = 64;
+ public const int CHANGED_OWNER = 128;
+ public const int CHANGED_REGION_RESTART = 256;
+ public const int TYPE_INVALID = 0;
+ public const int TYPE_INTEGER = 1;
+ public const int TYPE_double = 2;
+ public const int TYPE_STRING = 3;
+ public const int TYPE_KEY = 4;
+ public const int TYPE_VECTOR = 5;
+ public const int TYPE_ROTATION = 6;
+
+ //XML RPC Remote Data Channel
+ public const int REMOTE_DATA_CHANNEL = 1;
+ public const int REMOTE_DATA_REQUEST = 2;
+ public const int REMOTE_DATA_REPLY = 3;
+
+ //llHTTPRequest
+ public const int HTTP_METHOD = 0;
+ public const int HTTP_MIMETYPE = 1;
+ public const int HTTP_BODY_MAXLENGTH = 2;
+ public const int HTTP_VERIFY_CERT = 3;
+
+ public const int PRIM_MATERIAL = 2;
+ public const int PRIM_PHYSICS = 3;
+ public const int PRIM_TEMP_ON_REZ = 4;
+ public const int PRIM_PHANTOM = 5;
+ public const int PRIM_POSITION = 6;
+ public const int PRIM_SIZE = 7;
+ public const int PRIM_ROTATION = 8;
+ public const int PRIM_TYPE = 9;
+ public const int PRIM_TEXTURE = 17;
+ public const int PRIM_COLOR = 18;
+ public const int PRIM_BUMP_SHINY = 19;
+ public const int PRIM_FULLBRIGHT = 20;
+ public const int PRIM_FLEXIBLE = 21;
+ public const int PRIM_TEXGEN = 22;
+ public const int PRIM_CAST_SHADOWS = 24; // Not implemented, here for completeness sake
+ public const int PRIM_POINT_LIGHT = 23; // Huh?
+ public const int PRIM_TEXGEN_DEFAULT = 0;
+ public const int PRIM_TEXGEN_PLANAR = 1;
+
+ public const int PRIM_TYPE_BOX = 0;
+ public const int PRIM_TYPE_CYLINDER = 1;
+ public const int PRIM_TYPE_PRISM = 2;
+ public const int PRIM_TYPE_SPHERE = 3;
+ public const int PRIM_TYPE_TORUS = 4;
+ public const int PRIM_TYPE_TUBE = 5;
+ public const int PRIM_TYPE_RING = 6;
+ public const int PRIM_TYPE_SCULPT = 7;
+
+ public const int PRIM_HOLE_DEFAULT = 0;
+ public const int PRIM_HOLE_CIRCLE = 16;
+ public const int PRIM_HOLE_SQUARE = 32;
+ public const int PRIM_HOLE_TRIANGLE = 48;
+
+ public const int PRIM_MATERIAL_STONE = 0;
+ public const int PRIM_MATERIAL_METAL = 1;
+ public const int PRIM_MATERIAL_GLASS = 2;
+ public const int PRIM_MATERIAL_WOOD = 3;
+ public const int PRIM_MATERIAL_FLESH = 4;
+ public const int PRIM_MATERIAL_PLASTIC = 5;
+ public const int PRIM_MATERIAL_RUBBER = 6;
+ public const int PRIM_MATERIAL_LIGHT = 7;
+
+ public const int PRIM_SHINY_NONE = 0;
+ public const int PRIM_SHINY_LOW = 1;
+ public const int PRIM_SHINY_MEDIUM = 2;
+ public const int PRIM_SHINY_HIGH = 3;
+ public const int PRIM_BUMP_NONE = 0;
+ public const int PRIM_BUMP_BRIGHT = 1;
+ public const int PRIM_BUMP_DARK = 2;
+ public const int PRIM_BUMP_WOOD = 3;
+ public const int PRIM_BUMP_BARK = 4;
+ public const int PRIM_BUMP_BRICKS = 5;
+ public const int PRIM_BUMP_CHECKER = 6;
+ public const int PRIM_BUMP_CONCRETE = 7;
+ public const int PRIM_BUMP_TILE = 8;
+ public const int PRIM_BUMP_STONE = 9;
+ public const int PRIM_BUMP_DISKS = 10;
+ public const int PRIM_BUMP_GRAVEL = 11;
+ public const int PRIM_BUMP_BLOBS = 12;
+ public const int PRIM_BUMP_SIDING = 13;
+ public const int PRIM_BUMP_LARGETILE = 14;
+ public const int PRIM_BUMP_STUCCO = 15;
+ public const int PRIM_BUMP_SUCTION = 16;
+ public const int PRIM_BUMP_WEAVE = 17;
+
+ public const int PRIM_SCULPT_TYPE_SPHERE = 1;
+ public const int PRIM_SCULPT_TYPE_TORUS = 2;
+ public const int PRIM_SCULPT_TYPE_PLANE = 3;
+ public const int PRIM_SCULPT_TYPE_CYLINDER = 4;
+
+ public const int MASK_BASE = 0;
+ public const int MASK_OWNER = 1;
+ public const int MASK_GROUP = 2;
+ public const int MASK_EVERYONE = 3;
+ public const int MASK_NEXT = 4;
+
+ public const int PERM_TRANSFER = 8192;
+ public const int PERM_MODIFY = 16384;
+ public const int PERM_COPY = 32768;
+ public const int PERM_MOVE = 524288;
+ public const int PERM_ALL = 2147483647;
+
+ public const int PARCEL_MEDIA_COMMAND_STOP = 0;
+ public const int PARCEL_MEDIA_COMMAND_PAUSE = 1;
+ public const int PARCEL_MEDIA_COMMAND_PLAY = 2;
+ public const int PARCEL_MEDIA_COMMAND_LOOP = 3;
+ public const int PARCEL_MEDIA_COMMAND_TEXTURE = 4;
+ public const int PARCEL_MEDIA_COMMAND_URL = 5;
+ public const int PARCEL_MEDIA_COMMAND_TIME = 6;
+ public const int PARCEL_MEDIA_COMMAND_AGENT = 7;
+ public const int PARCEL_MEDIA_COMMAND_UNLOAD = 8;
+ public const int PARCEL_MEDIA_COMMAND_AUTO_ALIGN = 9;
+
+ public const int PAY_HIDE = -1;
+ public const int PAY_DEFAULT = -2;
+
+ public const string NULL_KEY = "00000000-0000-0000-0000-000000000000";
+ public const string EOF = "\n\n\n";
+ public const double PI = 3.14159274f;
+ public const double TWO_PI = 6.28318548f;
+ public const double PI_BY_TWO = 1.57079637f;
+ public const double DEG_TO_RAD = 0.01745329238f;
+ public const double RAD_TO_DEG = 57.29578f;
+ public const double SQRT2 = 1.414213538f;
+ public const int STRING_TRIM_HEAD = 1;
+ public const int STRING_TRIM_TAIL = 2;
+ public const int STRING_TRIM = 3;
+ public const int LIST_STAT_RANGE = 0;
+ public const int LIST_STAT_MIN = 1;
+ public const int LIST_STAT_MAX = 2;
+ public const int LIST_STAT_MEAN = 3;
+ public const int LIST_STAT_MEDIAN = 4;
+ public const int LIST_STAT_STD_DEV = 5;
+ public const int LIST_STAT_SUM = 6;
+ public const int LIST_STAT_SUM_SQUARES = 7;
+ public const int LIST_STAT_NUM_COUNT = 8;
+ public const int LIST_STAT_GEOMETRIC_MEAN = 9;
+ public const int LIST_STAT_HARMONIC_MEAN = 100;
+
+ //ParcelPrim Categories
+ public const int PARCEL_COUNT_TOTAL = 0;
+ public const int PARCEL_COUNT_OWNER = 1;
+ public const int PARCEL_COUNT_GROUP = 2;
+ public const int PARCEL_COUNT_OTHER = 3;
+ public const int PARCEL_COUNT_SELECTED = 4;
+ public const int PARCEL_COUNT_TEMP = 5;
+
+ public const int DEBUG_CHANNEL = 0x7FFFFFFF;
+ public const int PUBLIC_CHANNEL = 0x00000000;
+
+ public const int OBJECT_NAME = 1;
+ public const int OBJECT_DESC = 2;
+ public const int OBJECT_POS = 3;
+ public const int OBJECT_ROT = 4;
+ public const int OBJECT_VELOCITY = 5;
+ public const int OBJECT_OWNER = 6;
+ public const int OBJECT_GROUP = 7;
+ public const int OBJECT_CREATOR = 8;
+
+ // Can not be public const?
+ public vector ZERO_VECTOR = new vector(0.0, 0.0, 0.0);
+ public rotation ZERO_ROTATION = new rotation(0.0, 0, 0.0, 1.0);
+
+ }
+}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
new file mode 100644
index 0000000..7b3907f
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
@@ -0,0 +1,1732 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Runtime.Remoting.Lifetime;
+using System.Threading;
+using System.Reflection;
+using System.Collections;
+using System.Collections.Generic;
+using OpenSim.Region.ScriptEngine.Interfaces;
+using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
+using integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
+using key = System.String;
+using vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
+using rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
+
+namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
+{
+ public partial class ScriptBaseClass : MarshalByRefObject
+ {
+ public ILSL_Api m_LSL_Functions;
+
+ public void ApiTypeLSL(IScriptApi api)
+ {
+ if(!(api is ILSL_Api))
+ return;
+
+ m_LSL_Functions = (ILSL_Api)api;
+ }
+
+ public void state(string newState)
+ {
+ m_LSL_Functions.state(newState);
+ }
+
+ //
+ // Script functions
+ //
+ public void llSay(int channelID, string text)
+ {
+ m_LSL_Functions.llSay(channelID, text);
+ }
+
+ public double llSin(double f)
+ {
+ return m_LSL_Functions.llSin(f);
+ }
+
+ public double llCos(double f)
+ {
+ return m_LSL_Functions.llCos(f);
+ }
+
+ public double llTan(double f)
+ {
+ return m_LSL_Functions.llTan(f);
+ }
+
+ public double llAtan2(double x, double y)
+ {
+ return m_LSL_Functions.llAtan2(x, y);
+ }
+
+ public double llSqrt(double f)
+ {
+ return m_LSL_Functions.llSqrt(f);
+ }
+
+ public double llPow(double fbase, double fexponent)
+ {
+ return m_LSL_Functions.llPow(fbase, fexponent);
+ }
+
+ public LSL_Types.LSLInteger llAbs(int i)
+ {
+ return m_LSL_Functions.llAbs(i);
+ }
+
+ public double llFabs(double f)
+ {
+ return m_LSL_Functions.llFabs(f);
+ }
+
+ public double llFrand(double mag)
+ {
+ return m_LSL_Functions.llFrand(mag);
+ }
+
+ public LSL_Types.LSLInteger llFloor(double f)
+ {
+ return m_LSL_Functions.llFloor(f);
+ }
+
+ public LSL_Types.LSLInteger llCeil(double f)
+ {
+ return m_LSL_Functions.llCeil(f);
+ }
+
+ public LSL_Types.LSLInteger llRound(double f)
+ {
+ return m_LSL_Functions.llRound(f);
+ }
+
+ public double llVecMag(vector v)
+ {
+ return m_LSL_Functions.llVecMag(v);
+ }
+
+ public vector llVecNorm(vector v)
+ {
+ return m_LSL_Functions.llVecNorm(v);
+ }
+
+ public double llVecDist(vector a, vector b)
+ {
+ return m_LSL_Functions.llVecDist(a, b);
+ }
+
+ public vector llRot2Euler(rotation r)
+ {
+ return m_LSL_Functions.llRot2Euler(r);
+ }
+
+ public rotation llEuler2Rot(vector v)
+ {
+ return m_LSL_Functions.llEuler2Rot(v);
+ }
+
+ public rotation llAxes2Rot(vector fwd, vector left, vector up)
+ {
+ return m_LSL_Functions.llAxes2Rot(fwd, left, up);
+ }
+
+ public vector llRot2Fwd(rotation r)
+ {
+ return m_LSL_Functions.llRot2Fwd(r);
+ }
+
+ public vector llRot2Left(rotation r)
+ {
+ return m_LSL_Functions.llRot2Left(r);
+ }
+
+ public vector llRot2Up(rotation r)
+ {
+ return m_LSL_Functions.llRot2Up(r);
+ }
+
+ public rotation llRotBetween(vector start, vector end)
+ {
+ return m_LSL_Functions.llRotBetween(start, end);
+ }
+
+ public void llWhisper(int channelID, string text)
+ {
+ m_LSL_Functions.llWhisper(channelID, text);
+ }
+
+ public void llShout(int channelID, string text)
+ {
+ m_LSL_Functions.llShout(channelID, text);
+ }
+
+ public void llRegionSay(int channelID, string text)
+ {
+ m_LSL_Functions.llRegionSay(channelID, text);
+ }
+
+ public LSL_Types.LSLInteger llListen(int channelID, string name, string ID, string msg)
+ {
+ return m_LSL_Functions.llListen(channelID, name, ID, msg);
+ }
+
+ public void llListenControl(int number, int active)
+ {
+ m_LSL_Functions.llListenControl(number, active);
+ }
+
+ public void llListenRemove(int number)
+ {
+ m_LSL_Functions.llListenRemove(number);
+ }
+
+ public void llSensor(string name, string id, int type, double range, double arc)
+ {
+ m_LSL_Functions.llSensor(name, id, type, range, arc);
+ }
+
+ public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate)
+ {
+ m_LSL_Functions.llSensorRepeat(name, id, type, range, arc, rate);
+ }
+
+ public void llSensorRemove()
+ {
+ m_LSL_Functions.llSensorRemove();
+ }
+
+ public string llDetectedName(int number)
+ {
+ return m_LSL_Functions.llDetectedName(number);
+ }
+
+ public string llDetectedKey(int number)
+ {
+ return m_LSL_Functions.llDetectedKey(number);
+ }
+
+ public string llDetectedOwner(int number)
+ {
+ return m_LSL_Functions.llDetectedOwner(number);
+ }
+
+ public LSL_Types.LSLInteger llDetectedType(int number)
+ {
+ return m_LSL_Functions.llDetectedType(number);
+ }
+
+ public vector llDetectedPos(int number)
+ {
+ return m_LSL_Functions.llDetectedPos(number);
+ }
+
+ public vector llDetectedVel(int number)
+ {
+ return m_LSL_Functions.llDetectedVel(number);
+ }
+
+ public vector llDetectedGrab(int number)
+ {
+ return m_LSL_Functions.llDetectedGrab(number);
+ }
+
+ public rotation llDetectedRot(int number)
+ {
+ return m_LSL_Functions.llDetectedRot(number);
+ }
+
+ public LSL_Types.LSLInteger llDetectedGroup(int number)
+ {
+ return m_LSL_Functions.llDetectedGroup(number);
+ }
+
+ public LSL_Types.LSLInteger llDetectedLinkNumber(int number)
+ {
+ return m_LSL_Functions.llDetectedLinkNumber(number);
+ }
+
+ public void llDie()
+ {
+ m_LSL_Functions.llDie();
+ }
+
+ public double llGround(vector offset)
+ {
+ return m_LSL_Functions.llGround(offset);
+ }
+
+ public double llCloud(vector offset)
+ {
+ return m_LSL_Functions.llCloud(offset);
+ }
+
+ public vector llWind(vector offset)
+ {
+ return m_LSL_Functions.llWind(offset);
+ }
+
+ public void llSetStatus(int status, int value)
+ {
+ m_LSL_Functions.llSetStatus(status, value);
+ }
+
+ public LSL_Types.LSLInteger llGetStatus(int status)
+ {
+ return m_LSL_Functions.llGetStatus(status);
+ }
+
+ public void llSetScale(vector scale)
+ {
+ m_LSL_Functions.llSetScale(scale);
+ }
+
+ public vector llGetScale()
+ {
+ return m_LSL_Functions.llGetScale();
+ }
+
+ public void llSetColor(vector color, int face)
+ {
+ m_LSL_Functions.llSetColor(color, face);
+ }
+
+ public double llGetAlpha(int face)
+ {
+ return m_LSL_Functions.llGetAlpha(face);
+ }
+
+ public void llSetAlpha(double alpha, int face)
+ {
+ m_LSL_Functions.llSetAlpha(alpha, face);
+ }
+
+ public vector llGetColor(int face)
+ {
+ return m_LSL_Functions.llGetColor(face);
+ }
+
+ public void llSetTexture(string texture, int face)
+ {
+ m_LSL_Functions.llSetTexture(texture, face);
+ }
+
+ public void llScaleTexture(double u, double v, int face)
+ {
+ m_LSL_Functions.llScaleTexture(u, v, face);
+ }
+
+ public void llOffsetTexture(double u, double v, int face)
+ {
+ m_LSL_Functions.llOffsetTexture(u, v, face);
+ }
+
+ public void llRotateTexture(double rotation, int face)
+ {
+ m_LSL_Functions.llRotateTexture(rotation, face);
+ }
+
+ public string llGetTexture(int face)
+ {
+ return m_LSL_Functions.llGetTexture(face);
+ }
+
+ public void llSetPos(vector pos)
+ {
+ m_LSL_Functions.llSetPos(pos);
+ }
+
+ public vector llGetPos()
+ {
+ return m_LSL_Functions.llGetPos();
+ }
+
+ public vector llGetLocalPos()
+ {
+ return m_LSL_Functions.llGetLocalPos();
+ }
+
+ public void llSetRot(rotation rot)
+ {
+ m_LSL_Functions.llSetRot(rot);
+ }
+
+ public rotation llGetRot()
+ {
+ return m_LSL_Functions.llGetRot();
+ }
+
+ public rotation llGetLocalRot()
+ {
+ return m_LSL_Functions.llGetLocalRot();
+ }
+
+ public void llSetForce(vector force, int local)
+ {
+ m_LSL_Functions.llSetForce(force, local);
+ }
+
+ public vector llGetForce()
+ {
+ return m_LSL_Functions.llGetForce();
+ }
+
+ public LSL_Types.LSLInteger llTarget(vector position, double range)
+ {
+ return m_LSL_Functions.llTarget(position, range);
+ }
+
+ public void llTargetRemove(int number)
+ {
+ m_LSL_Functions.llTargetRemove(number);
+ }
+
+ public LSL_Types.LSLInteger llRotTarget(rotation rot, double error)
+ {
+ return m_LSL_Functions.llRotTarget(rot, error);
+ }
+
+ public void llRotTargetRemove(int number)
+ {
+ m_LSL_Functions.llRotTargetRemove(number);
+ }
+
+ public void llMoveToTarget(vector target, double tau)
+ {
+ m_LSL_Functions.llMoveToTarget(target, tau);
+ }
+
+ public void llStopMoveToTarget()
+ {
+ m_LSL_Functions.llStopMoveToTarget();
+ }
+
+ public void llApplyImpulse(vector force, int local)
+ {
+ m_LSL_Functions.llApplyImpulse(force, local);
+ }
+
+ public void llApplyRotationalImpulse(vector force, int local)
+ {
+ m_LSL_Functions.llApplyRotationalImpulse(force, local);
+ }
+
+ public void llSetTorque(vector torque, int local)
+ {
+ m_LSL_Functions.llSetTorque(torque, local);
+ }
+
+ public vector llGetTorque()
+ {
+ return m_LSL_Functions.llGetTorque();
+ }
+
+ public void llSetForceAndTorque(vector force, vector torque, int local)
+ {
+ m_LSL_Functions.llSetForceAndTorque(force, torque, local);
+ }
+
+ public vector llGetVel()
+ {
+ return m_LSL_Functions.llGetVel();
+ }
+
+ public vector llGetAccel()
+ {
+ return m_LSL_Functions.llGetAccel();
+ }
+
+ public vector llGetOmega()
+ {
+ return m_LSL_Functions.llGetOmega();
+ }
+
+ public double llGetTimeOfDay()
+ {
+ return m_LSL_Functions.llGetTimeOfDay();
+ }
+
+ public double llGetWallclock()
+ {
+ return m_LSL_Functions.llGetWallclock();
+ }
+
+ public double llGetTime()
+ {
+ return m_LSL_Functions.llGetTime();
+ }
+
+ public void llResetTime()
+ {
+ m_LSL_Functions.llResetTime();
+ }
+
+ public double llGetAndResetTime()
+ {
+ return m_LSL_Functions.llGetAndResetTime();
+ }
+
+ public void llSound()
+ {
+ m_LSL_Functions.llSound();
+ }
+
+ public void llPlaySound(string sound, double volume)
+ {
+ m_LSL_Functions.llPlaySound(sound, volume);
+ }
+
+ public void llLoopSound(string sound, double volume)
+ {
+ m_LSL_Functions.llLoopSound(sound, volume);
+ }
+
+ public void llLoopSoundMaster(string sound, double volume)
+ {
+ m_LSL_Functions.llLoopSoundMaster(sound, volume);
+ }
+
+ public void llLoopSoundSlave(string sound, double volume)
+ {
+ m_LSL_Functions.llLoopSoundSlave(sound, volume);
+ }
+
+ public void llPlaySoundSlave(string sound, double volume)
+ {
+ m_LSL_Functions.llPlaySoundSlave(sound, volume);
+ }
+
+ public void llTriggerSound(string sound, double volume)
+ {
+ m_LSL_Functions.llTriggerSound(sound, volume);
+ }
+
+ public void llStopSound()
+ {
+ m_LSL_Functions.llStopSound();
+ }
+
+ public void llPreloadSound(string sound)
+ {
+ m_LSL_Functions.llPreloadSound(sound);
+ }
+
+ public string llGetSubString(string src, int start, int end)
+ {
+ return m_LSL_Functions.llGetSubString(src, start, end);
+ }
+
+ public string llDeleteSubString(string src, int start, int end)
+ {
+ return m_LSL_Functions.llDeleteSubString(src, start, end);
+ }
+
+ public string llInsertString(string dst, int position, string src)
+ {
+ return m_LSL_Functions.llInsertString(dst, position, src);
+ }
+
+ public string llToUpper(string source)
+ {
+ return m_LSL_Functions.llToUpper(source);
+ }
+
+ public string llToLower(string source)
+ {
+ return m_LSL_Functions.llToLower(source);
+ }
+
+ public LSL_Types.LSLInteger llGiveMoney(string destination, int amount)
+ {
+ return m_LSL_Functions.llGiveMoney(destination, amount);
+ }
+
+ public void llMakeExplosion()
+ {
+ m_LSL_Functions.llMakeExplosion();
+ }
+
+ public void llMakeFountain()
+ {
+ m_LSL_Functions.llMakeFountain();
+ }
+
+ public void llMakeSmoke()
+ {
+ m_LSL_Functions.llMakeSmoke();
+ }
+
+ public void llMakeFire()
+ {
+ m_LSL_Functions.llMakeFire();
+ }
+
+ public void llRezObject(string inventory, vector pos, vector vel, rotation rot, int param)
+ {
+ m_LSL_Functions.llRezObject(inventory, pos, vel, rot, param);
+ }
+
+ public void llLookAt(vector target, double strength, double damping)
+ {
+ m_LSL_Functions.llLookAt(target, strength, damping);
+ }
+
+ public void llStopLookAt()
+ {
+ m_LSL_Functions.llStopLookAt();
+ }
+
+ public void llSetTimerEvent(double sec)
+ {
+ m_LSL_Functions.llSetTimerEvent(sec);
+ }
+
+ public void llSleep(double sec)
+ {
+ m_LSL_Functions.llSleep(sec);
+ }
+
+ public double llGetMass()
+ {
+ return m_LSL_Functions.llGetMass();
+ }
+
+ public void llCollisionFilter(string name, string id, int accept)
+ {
+ m_LSL_Functions.llCollisionFilter(name, id, accept);
+ }
+
+ public void llTakeControls(int controls, int accept, int pass_on)
+ {
+ m_LSL_Functions.llTakeControls(controls, accept, pass_on);
+ }
+
+ public void llReleaseControls()
+ {
+ m_LSL_Functions.llReleaseControls();
+ }
+
+ public void llAttachToAvatar(int attachment)
+ {
+ m_LSL_Functions.llAttachToAvatar(attachment);
+ }
+
+ public void llDetachFromAvatar()
+ {
+ m_LSL_Functions.llDetachFromAvatar();
+ }
+
+ public void llTakeCamera()
+ {
+ m_LSL_Functions.llTakeCamera();
+ }
+
+ public void llReleaseCamera()
+ {
+ m_LSL_Functions.llReleaseCamera();
+ }
+
+ public string llGetOwner()
+ {
+ return m_LSL_Functions.llGetOwner();
+ }
+
+ public void llInstantMessage(string user, string message)
+ {
+ m_LSL_Functions.llInstantMessage(user, message);
+ }
+
+ public void llEmail(string address, string subject, string message)
+ {
+ m_LSL_Functions.llEmail(address, subject, message);
+ }
+
+ public void llGetNextEmail(string address, string subject)
+ {
+ m_LSL_Functions.llGetNextEmail(address, subject);
+ }
+
+ public string llGetKey()
+ {
+ return m_LSL_Functions.llGetKey();
+ }
+
+ public void llSetBuoyancy(double buoyancy)
+ {
+ m_LSL_Functions.llSetBuoyancy(buoyancy);
+ }
+
+ public void llSetHoverHeight(double height, int water, double tau)
+ {
+ m_LSL_Functions.llSetHoverHeight(height, water, tau);
+ }
+
+ public void llStopHover()
+ {
+ m_LSL_Functions.llStopHover();
+ }
+
+ public void llMinEventDelay(double delay)
+ {
+ m_LSL_Functions.llMinEventDelay(delay);
+ }
+
+ public void llSoundPreload()
+ {
+ m_LSL_Functions.llSoundPreload();
+ }
+
+ public void llRotLookAt(rotation target, double strength, double damping)
+ {
+ m_LSL_Functions.llRotLookAt(target, strength, damping);
+ }
+
+ public LSL_Types.LSLInteger llStringLength(string str)
+ {
+ return m_LSL_Functions.llStringLength(str);
+ }
+
+ public void llStartAnimation(string anim)
+ {
+ m_LSL_Functions.llStartAnimation(anim);
+ }
+
+ public void llStopAnimation(string anim)
+ {
+ m_LSL_Functions.llStopAnimation(anim);
+ }
+
+ public void llPointAt()
+ {
+ m_LSL_Functions.llPointAt();
+ }
+
+ public void llStopPointAt()
+ {
+ m_LSL_Functions.llStopPointAt();
+ }
+
+ public void llTargetOmega(vector axis, double spinrate, double gain)
+ {
+ m_LSL_Functions.llTargetOmega(axis, spinrate, gain);
+ }
+
+ public LSL_Types.LSLInteger llGetStartParameter()
+ {
+ return m_LSL_Functions.llGetStartParameter();
+ }
+
+ public void llGodLikeRezObject(string inventory, vector pos)
+ {
+ m_LSL_Functions.llGodLikeRezObject(inventory, pos);
+ }
+
+ public void llRequestPermissions(string agent, int perm)
+ {
+ m_LSL_Functions.llRequestPermissions(agent, perm);
+ }
+
+ public string llGetPermissionsKey()
+ {
+ return m_LSL_Functions.llGetPermissionsKey();
+ }
+
+ public LSL_Types.LSLInteger llGetPermissions()
+ {
+ return m_LSL_Functions.llGetPermissions();
+ }
+
+ public LSL_Types.LSLInteger llGetLinkNumber()
+ {
+ return m_LSL_Functions.llGetLinkNumber();
+ }
+
+ public void llSetLinkColor(int linknumber, vector color, int face)
+ {
+ m_LSL_Functions.llSetLinkColor(linknumber, color, face);
+ }
+
+ public void llCreateLink(string target, int parent)
+ {
+ m_LSL_Functions.llCreateLink(target, parent);
+ }
+
+ public void llBreakLink(int linknum)
+ {
+ m_LSL_Functions.llBreakLink(linknum);
+ }
+
+ public void llBreakAllLinks()
+ {
+ m_LSL_Functions.llBreakAllLinks();
+ }
+
+ public string llGetLinkKey(int linknum)
+ {
+ return m_LSL_Functions.llGetLinkKey(linknum);
+ }
+
+ public string llGetLinkName(int linknum)
+ {
+ return m_LSL_Functions.llGetLinkName(linknum);
+ }
+
+ public LSL_Types.LSLInteger llGetInventoryNumber(int type)
+ {
+ return m_LSL_Functions.llGetInventoryNumber(type);
+ }
+
+ public string llGetInventoryName(int type, int number)
+ {
+ return m_LSL_Functions.llGetInventoryName(type, number);
+ }
+
+ public void llSetScriptState(string name, int run)
+ {
+ m_LSL_Functions.llSetScriptState(name, run);
+ }
+
+ public double llGetEnergy()
+ {
+ return m_LSL_Functions.llGetEnergy();
+ }
+
+ public void llGiveInventory(string destination, string inventory)
+ {
+ m_LSL_Functions.llGiveInventory(destination, inventory);
+ }
+
+ public void llRemoveInventory(string item)
+ {
+ m_LSL_Functions.llRemoveInventory(item);
+ }
+
+ public void llSetText(string text, vector color, double alpha)
+ {
+ m_LSL_Functions.llSetText(text, color, alpha);
+ }
+
+ public double llWater(vector offset)
+ {
+ return m_LSL_Functions.llWater(offset);
+ }
+
+ public void llPassTouches(int pass)
+ {
+ m_LSL_Functions.llPassTouches(pass);
+ }
+
+ public string llRequestAgentData(string id, int data)
+ {
+ return m_LSL_Functions.llRequestAgentData(id, data);
+ }
+
+ public string llRequestInventoryData(string name)
+ {
+ return m_LSL_Functions.llRequestInventoryData(name);
+ }
+
+ public void llSetDamage(double damage)
+ {
+ m_LSL_Functions.llSetDamage(damage);
+ }
+
+ public void llTeleportAgentHome(string agent)
+ {
+ m_LSL_Functions.llTeleportAgentHome(agent);
+ }
+
+ public void llModifyLand(int action, int brush)
+ {
+ m_LSL_Functions.llModifyLand(action, brush);
+ }
+
+ public void llCollisionSound(string impact_sound, double impact_volume)
+ {
+ m_LSL_Functions.llCollisionSound(impact_sound, impact_volume);
+ }
+
+ public void llCollisionSprite(string impact_sprite)
+ {
+ m_LSL_Functions.llCollisionSprite(impact_sprite);
+ }
+
+ public string llGetAnimation(string id)
+ {
+ return m_LSL_Functions.llGetAnimation(id);
+ }
+
+ public void llResetScript()
+ {
+ m_LSL_Functions.llResetScript();
+ }
+
+ public void llMessageLinked(int linknum, int num, string str, string id)
+ {
+ m_LSL_Functions.llMessageLinked(linknum, num, str, id);
+ }
+
+ public void llPushObject(string target, vector impulse, vector ang_impulse, int local)
+ {
+ m_LSL_Functions.llPushObject(target, impulse, ang_impulse, local);
+ }
+
+ public void llPassCollisions(int pass)
+ {
+ m_LSL_Functions.llPassCollisions(pass);
+ }
+
+ public string llGetScriptName()
+ {
+ return m_LSL_Functions.llGetScriptName();
+ }
+
+ public LSL_Types.LSLInteger llGetNumberOfSides()
+ {
+ return m_LSL_Functions.llGetNumberOfSides();
+ }
+
+ public rotation llAxisAngle2Rot(vector axis, double angle)
+ {
+ return m_LSL_Functions.llAxisAngle2Rot(axis, angle);
+ }
+
+ public vector llRot2Axis(rotation rot)
+ {
+ return m_LSL_Functions.llRot2Axis(rot);
+ }
+
+ public double llRot2Angle(rotation rot)
+ {
+ return m_LSL_Functions.llRot2Angle(rot);
+ }
+
+ public double llAcos(double val)
+ {
+ return m_LSL_Functions.llAcos(val);
+ }
+
+ public double llAsin(double val)
+ {
+ return m_LSL_Functions.llAsin(val);
+ }
+
+ public double llAngleBetween(rotation a, rotation b)
+ {
+ return m_LSL_Functions.llAngleBetween(a, b);
+ }
+
+ public string llGetInventoryKey(string name)
+ {
+ return m_LSL_Functions.llGetInventoryKey(name);
+ }
+
+ public void llAllowInventoryDrop(int add)
+ {
+ m_LSL_Functions.llAllowInventoryDrop(add);
+ }
+
+ public vector llGetSunDirection()
+ {
+ return m_LSL_Functions.llGetSunDirection();
+ }
+
+ public vector llGetTextureOffset(int face)
+ {
+ return m_LSL_Functions.llGetTextureOffset(face);
+ }
+
+ public vector llGetTextureScale(int side)
+ {
+ return m_LSL_Functions.llGetTextureScale(side);
+ }
+
+ public double llGetTextureRot(int side)
+ {
+ return m_LSL_Functions.llGetTextureRot(side);
+ }
+
+ public LSL_Types.LSLInteger llSubStringIndex(string source, string pattern)
+ {
+ return m_LSL_Functions.llSubStringIndex(source, pattern);
+ }
+
+ public string llGetOwnerKey(string id)
+ {
+ return m_LSL_Functions.llGetOwnerKey(id);
+ }
+
+ public vector llGetCenterOfMass()
+ {
+ return m_LSL_Functions.llGetCenterOfMass();
+ }
+
+ public LSL_Types.list llListSort(LSL_Types.list src, int stride, int ascending)
+ {
+ return m_LSL_Functions.llListSort(src, stride, ascending);
+ }
+
+ public LSL_Types.LSLInteger llGetListLength(LSL_Types.list src)
+ {
+ return m_LSL_Functions.llGetListLength(src);
+ }
+
+ public LSL_Types.LSLInteger llList2Integer(LSL_Types.list src, int index)
+ {
+ return m_LSL_Functions.llList2Integer(src, index);
+ }
+
+ public string llList2String(LSL_Types.list src, int index)
+ {
+ return m_LSL_Functions.llList2String(src, index);
+ }
+
+ public string llList2Key(LSL_Types.list src, int index)
+ {
+ return m_LSL_Functions.llList2Key(src, index);
+ }
+
+ public vector llList2Vector(LSL_Types.list src, int index)
+ {
+ return m_LSL_Functions.llList2Vector(src, index);
+ }
+
+ public rotation llList2Rot(LSL_Types.list src, int index)
+ {
+ return m_LSL_Functions.llList2Rot(src, index);
+ }
+
+ public LSL_Types.list llList2List(LSL_Types.list src, int start, int end)
+ {
+ return m_LSL_Functions.llList2List(src, start, end);
+ }
+
+ public LSL_Types.list llDeleteSubList(LSL_Types.list src, int start, int end)
+ {
+ return m_LSL_Functions.llDeleteSubList(src, start, end);
+ }
+
+ public LSL_Types.LSLInteger llGetListEntryType(LSL_Types.list src, int index)
+ {
+ return m_LSL_Functions.llGetListEntryType(src, index);
+ }
+
+ public string llList2CSV(LSL_Types.list src)
+ {
+ return m_LSL_Functions.llList2CSV(src);
+ }
+
+ public LSL_Types.list llCSV2List(string src)
+ {
+ return m_LSL_Functions.llCSV2List(src);
+ }
+
+ public LSL_Types.list llListRandomize(LSL_Types.list src, int stride)
+ {
+ return m_LSL_Functions.llListRandomize(src, stride);
+ }
+
+ public LSL_Types.list llList2ListStrided(LSL_Types.list src, int start, int end, int stride)
+ {
+ return m_LSL_Functions.llList2ListStrided(src, start, end, stride);
+ }
+
+ public vector llGetRegionCorner()
+ {
+ return m_LSL_Functions.llGetRegionCorner();
+ }
+
+ public LSL_Types.list llListInsertList(LSL_Types.list dest, LSL_Types.list src, int start)
+ {
+ return m_LSL_Functions.llListInsertList(dest, src, start);
+ }
+
+ public LSL_Types.LSLInteger llListFindList(LSL_Types.list src, LSL_Types.list test)
+ {
+ return m_LSL_Functions.llListFindList(src, test);
+ }
+
+ public string llGetObjectName()
+ {
+ return m_LSL_Functions.llGetObjectName();
+ }
+
+ public void llSetObjectName(string name)
+ {
+ m_LSL_Functions.llSetObjectName(name);
+ }
+
+ public string llGetDate()
+ {
+ return m_LSL_Functions.llGetDate();
+ }
+
+ public LSL_Types.LSLInteger llEdgeOfWorld(vector pos, vector dir)
+ {
+ return m_LSL_Functions.llEdgeOfWorld(pos, dir);
+ }
+
+ public LSL_Types.LSLInteger llGetAgentInfo(string id)
+ {
+ return m_LSL_Functions.llGetAgentInfo(id);
+ }
+
+ public void llAdjustSoundVolume(double volume)
+ {
+ m_LSL_Functions.llAdjustSoundVolume(volume);
+ }
+
+ public void llSetSoundQueueing(int queue)
+ {
+ m_LSL_Functions.llSetSoundQueueing(queue);
+ }
+
+ public void llSetSoundRadius(double radius)
+ {
+ m_LSL_Functions.llSetSoundRadius(radius);
+ }
+
+ public string llKey2Name(string id)
+ {
+ return m_LSL_Functions.llKey2Name(id);
+ }
+
+ public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate)
+ {
+ m_LSL_Functions.llSetTextureAnim(mode, face, sizex, sizey, start, length, rate);
+ }
+
+ public void llTriggerSoundLimited(string sound, double volume, vector top_north_east, vector bottom_south_west)
+ {
+ m_LSL_Functions.llTriggerSoundLimited(sound, volume, top_north_east, bottom_south_west);
+ }
+
+ public void llEjectFromLand(string pest)
+ {
+ m_LSL_Functions.llEjectFromLand(pest);
+ }
+
+ public LSL_Types.list llParseString2List(string str, LSL_Types.list separators, LSL_Types.list spacers)
+ {
+ return m_LSL_Functions.llParseString2List(str,separators,spacers);
+ }
+
+ public LSL_Types.LSLInteger llOverMyLand(string id)
+ {
+ return m_LSL_Functions.llOverMyLand(id);
+ }
+
+ public string llGetLandOwnerAt(vector pos)
+ {
+ return m_LSL_Functions.llGetLandOwnerAt(pos);
+ }
+
+ public string llGetNotecardLine(string name, int line)
+ {
+ return m_LSL_Functions.llGetNotecardLine(name, line);
+ }
+
+ public vector llGetAgentSize(string id)
+ {
+ return m_LSL_Functions.llGetAgentSize(id);
+ }
+
+ public LSL_Types.LSLInteger llSameGroup(string agent)
+ {
+ return m_LSL_Functions.llSameGroup(agent);
+ }
+
+ public void llUnSit(string id)
+ {
+ m_LSL_Functions.llUnSit(id);
+ }
+
+ public vector llGroundSlope(vector offset)
+ {
+ return m_LSL_Functions.llGroundSlope(offset);
+ }
+
+ public vector llGroundNormal(vector offset)
+ {
+ return m_LSL_Functions.llGroundNormal(offset);
+ }
+
+ public vector llGroundContour(vector offset)
+ {
+ return m_LSL_Functions.llGroundContour(offset);
+ }
+
+ public LSL_Types.LSLInteger llGetAttached()
+ {
+ return m_LSL_Functions.llGetAttached();
+ }
+
+ public LSL_Types.LSLInteger llGetFreeMemory()
+ {
+ return m_LSL_Functions.llGetFreeMemory();
+ }
+
+ public string llGetRegionName()
+ {
+ return m_LSL_Functions.llGetRegionName();
+ }
+
+ public double llGetRegionTimeDilation()
+ {
+ return m_LSL_Functions.llGetRegionTimeDilation();
+ }
+
+ public double llGetRegionFPS()
+ {
+ return m_LSL_Functions.llGetRegionFPS();
+ }
+
+ public void llParticleSystem(LSL_Types.list rules)
+ {
+ m_LSL_Functions.llParticleSystem(rules);
+ }
+
+ public void llGroundRepel(double height, int water, double tau)
+ {
+ m_LSL_Functions.llGroundRepel(height, water, tau);
+ }
+
+ public void llGiveInventoryList(string destination, string category, LSL_Types.list inventory)
+ {
+ m_LSL_Functions.llGiveInventoryList(destination, category, inventory);
+ }
+
+ public void llSetVehicleType(int type)
+ {
+ m_LSL_Functions.llSetVehicleType(type);
+ }
+
+ public void llSetVehicledoubleParam(int param, double value)
+ {
+ m_LSL_Functions.llSetVehicledoubleParam(param, value);
+ }
+
+ public void llSetVehicleFloatParam(int param, float value)
+ {
+ m_LSL_Functions.llSetVehicleFloatParam(param, value);
+ }
+
+ public void llSetVehicleVectorParam(int param, vector vec)
+ {
+ m_LSL_Functions.llSetVehicleVectorParam(param, vec);
+ }
+
+ public void llSetVehicleRotationParam(int param, rotation rot)
+ {
+ m_LSL_Functions.llSetVehicleRotationParam(param, rot);
+ }
+
+ public void llSetVehicleFlags(int flags)
+ {
+ m_LSL_Functions.llSetVehicleFlags(flags);
+ }
+
+ public void llRemoveVehicleFlags(int flags)
+ {
+ m_LSL_Functions.llRemoveVehicleFlags(flags);
+ }
+
+ public void llSitTarget(vector offset, rotation rot)
+ {
+ m_LSL_Functions.llSitTarget(offset, rot);
+ }
+
+ public string llAvatarOnSitTarget()
+ {
+ return m_LSL_Functions.llAvatarOnSitTarget();
+ }
+
+ public void llAddToLandPassList(string avatar, double hours)
+ {
+ m_LSL_Functions.llAddToLandPassList(avatar, hours);
+ }
+
+ public void llSetTouchText(string text)
+ {
+ m_LSL_Functions.llSetTouchText(text);
+ }
+
+ public void llSetSitText(string text)
+ {
+ m_LSL_Functions.llSetSitText(text);
+ }
+
+ public void llSetCameraEyeOffset(vector offset)
+ {
+ m_LSL_Functions.llSetCameraEyeOffset(offset);
+ }
+
+ public void llSetCameraAtOffset(vector offset)
+ {
+ m_LSL_Functions.llSetCameraAtOffset(offset);
+ }
+
+ public string llDumpList2String(LSL_Types.list src, string seperator)
+ {
+ return m_LSL_Functions.llDumpList2String(src, seperator);
+ }
+
+ public LSL_Types.LSLInteger llScriptDanger(vector pos)
+ {
+ return m_LSL_Functions.llScriptDanger(pos);
+ }
+
+ public void llDialog(string avatar, string message, LSL_Types.list buttons, int chat_channel)
+ {
+ m_LSL_Functions.llDialog(avatar, message, buttons, chat_channel);
+ }
+
+ public void llVolumeDetect(int detect)
+ {
+ m_LSL_Functions.llVolumeDetect(detect);
+ }
+
+ public void llResetOtherScript(string name)
+ {
+ m_LSL_Functions.llResetOtherScript(name);
+ }
+
+ public LSL_Types.LSLInteger llGetScriptState(string name)
+ {
+ return m_LSL_Functions.llGetScriptState(name);
+ }
+
+ public void llRemoteLoadScript()
+ {
+ m_LSL_Functions.llRemoteLoadScript();
+ }
+
+ public void llSetRemoteScriptAccessPin(int pin)
+ {
+ m_LSL_Functions.llSetRemoteScriptAccessPin(pin);
+ }
+
+ public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param)
+ {
+ m_LSL_Functions.llRemoteLoadScriptPin(target, name, pin, running, start_param);
+ }
+
+ public void llOpenRemoteDataChannel()
+ {
+ m_LSL_Functions.llOpenRemoteDataChannel();
+ }
+
+ public string llSendRemoteData(string channel, string dest, int idata, string sdata)
+ {
+ return m_LSL_Functions.llSendRemoteData(channel, dest, idata, sdata);
+ }
+
+ public void llRemoteDataReply(string channel, string message_id, string sdata, int idata)
+ {
+ m_LSL_Functions.llRemoteDataReply(channel, message_id, sdata, idata);
+ }
+
+ public void llCloseRemoteDataChannel(string channel)
+ {
+ m_LSL_Functions.llCloseRemoteDataChannel(channel);
+ }
+
+ public string llMD5String(string src, int nonce)
+ {
+ return m_LSL_Functions.llMD5String(src, nonce);
+ }
+
+ public void llSetPrimitiveParams(LSL_Types.list rules)
+ {
+ m_LSL_Functions.llSetPrimitiveParams(rules);
+ }
+
+ public void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules)
+ {
+ m_LSL_Functions.llSetLinkPrimitiveParams(linknumber, rules);
+ }
+ public string llStringToBase64(string str)
+ {
+ return m_LSL_Functions.llStringToBase64(str);
+ }
+
+ public string llBase64ToString(string str)
+ {
+ return m_LSL_Functions.llBase64ToString(str);
+ }
+
+ public void llXorBase64Strings()
+ {
+ m_LSL_Functions.llXorBase64Strings();
+ }
+
+ public void llRemoteDataSetRegion()
+ {
+ m_LSL_Functions.llRemoteDataSetRegion();
+ }
+
+ public double llLog10(double val)
+ {
+ return m_LSL_Functions.llLog10(val);
+ }
+
+ public double llLog(double val)
+ {
+ return m_LSL_Functions.llLog(val);
+ }
+
+ public LSL_Types.list llGetAnimationList(string id)
+ {
+ return m_LSL_Functions.llGetAnimationList(id);
+ }
+
+ public void llSetParcelMusicURL(string url)
+ {
+ m_LSL_Functions.llSetParcelMusicURL(url);
+ }
+
+ public vector llGetRootPosition()
+ {
+ return m_LSL_Functions.llGetRootPosition();
+ }
+
+ public rotation llGetRootRotation()
+ {
+ return m_LSL_Functions.llGetRootRotation();
+ }
+
+ public string llGetObjectDesc()
+ {
+ return m_LSL_Functions.llGetObjectDesc();
+ }
+
+ public void llSetObjectDesc(string desc)
+ {
+ m_LSL_Functions.llSetObjectDesc(desc);
+ }
+
+ public string llGetCreator()
+ {
+ return m_LSL_Functions.llGetCreator();
+ }
+
+ public string llGetTimestamp()
+ {
+ return m_LSL_Functions.llGetTimestamp();
+ }
+
+ public void llSetLinkAlpha(int linknumber, double alpha, int face)
+ {
+ m_LSL_Functions.llSetLinkAlpha(linknumber, alpha, face);
+ }
+
+ public LSL_Types.LSLInteger llGetNumberOfPrims()
+ {
+ return m_LSL_Functions.llGetNumberOfPrims();
+ }
+
+ public string llGetNumberOfNotecardLines(string name)
+ {
+ return m_LSL_Functions.llGetNumberOfNotecardLines(name);
+ }
+
+ public LSL_Types.list llGetBoundingBox(string obj)
+ {
+ return m_LSL_Functions.llGetBoundingBox(obj);
+ }
+
+ public vector llGetGeometricCenter()
+ {
+ return m_LSL_Functions.llGetGeometricCenter();
+ }
+
+ public LSL_Types.list llGetPrimitiveParams(LSL_Types.list rules)
+ {
+ return m_LSL_Functions.llGetPrimitiveParams(rules);
+ }
+
+ public string llIntegerToBase64(int number)
+ {
+ return m_LSL_Functions.llIntegerToBase64(number);
+ }
+
+ public LSL_Types.LSLInteger llBase64ToInteger(string str)
+ {
+ return m_LSL_Functions.llBase64ToInteger(str);
+ }
+
+ public double llGetGMTclock()
+ {
+ return m_LSL_Functions.llGetGMTclock();
+ }
+
+ public string llGetSimulatorHostname()
+ {
+ return m_LSL_Functions.llGetSimulatorHostname();
+ }
+
+ public void llSetLocalRot(rotation rot)
+ {
+ m_LSL_Functions.llSetLocalRot(rot);
+ }
+
+ public LSL_Types.list llParseStringKeepNulls(string src, LSL_Types.list seperators, LSL_Types.list spacers)
+ {
+ return m_LSL_Functions.llParseStringKeepNulls(src, seperators, spacers);
+ }
+
+ public void llRezAtRoot(string inventory, vector position, vector velocity, rotation rot, int param)
+ {
+ m_LSL_Functions.llRezAtRoot(inventory, position, velocity, rot, param);
+ }
+
+ public LSL_Types.LSLInteger llGetObjectPermMask(int mask)
+ {
+ return m_LSL_Functions.llGetObjectPermMask(mask);
+ }
+
+ public void llSetObjectPermMask(int mask, int value)
+ {
+ m_LSL_Functions.llSetObjectPermMask(mask, value);
+ }
+
+ public LSL_Types.LSLInteger llGetInventoryPermMask(string item, int mask)
+ {
+ return m_LSL_Functions.llGetInventoryPermMask(item, mask);
+ }
+
+ public void llSetInventoryPermMask(string item, int mask, int value)
+ {
+ m_LSL_Functions.llSetInventoryPermMask(item, mask, value);
+ }
+
+ public string llGetInventoryCreator(string item)
+ {
+ return m_LSL_Functions.llGetInventoryCreator(item);
+ }
+
+ public void llOwnerSay(string msg)
+ {
+ m_LSL_Functions.llOwnerSay(msg);
+ }
+
+ public string llRequestSimulatorData(string simulator, int data)
+ {
+ return m_LSL_Functions.llRequestSimulatorData(simulator, data);
+ }
+
+ public void llForceMouselook(int mouselook)
+ {
+ m_LSL_Functions.llForceMouselook(mouselook);
+ }
+
+ public double llGetObjectMass(string id)
+ {
+ return m_LSL_Functions.llGetObjectMass(id);
+ }
+
+ public LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end)
+ {
+ return m_LSL_Functions.llListReplaceList(dest, src, start, end);
+ }
+
+ public void llLoadURL(string avatar_id, string message, string url)
+ {
+ m_LSL_Functions.llLoadURL(avatar_id, message, url);
+ }
+
+ public void llParcelMediaCommandList(LSL_Types.list commandList)
+ {
+ m_LSL_Functions.llParcelMediaCommandList(commandList);
+ }
+
+ public void llParcelMediaQuery()
+ {
+ m_LSL_Functions.llParcelMediaQuery();
+ }
+
+ public LSL_Types.LSLInteger llModPow(int a, int b, int c)
+ {
+ return m_LSL_Functions.llModPow(a, b, c);
+ }
+
+ public LSL_Types.LSLInteger llGetInventoryType(string name)
+ {
+ return m_LSL_Functions.llGetInventoryType(name);
+ }
+
+ public void llSetPayPrice(int price, LSL_Types.list quick_pay_buttons)
+ {
+ m_LSL_Functions.llSetPayPrice(price, quick_pay_buttons);
+ }
+
+ public vector llGetCameraPos()
+ {
+ return m_LSL_Functions.llGetCameraPos();
+ }
+
+ public rotation llGetCameraRot()
+ {
+ return m_LSL_Functions.llGetCameraRot();
+ }
+
+ public void llSetPrimURL()
+ {
+ m_LSL_Functions.llSetPrimURL();
+ }
+
+ public void llRefreshPrimURL()
+ {
+ m_LSL_Functions.llRefreshPrimURL();
+ }
+
+ public string llEscapeURL(string url)
+ {
+ return m_LSL_Functions.llEscapeURL(url);
+ }
+
+ public string llUnescapeURL(string url)
+ {
+ return m_LSL_Functions.llUnescapeURL(url);
+ }
+
+ public void llMapDestination(string simname, vector pos, vector look_at)
+ {
+ m_LSL_Functions.llMapDestination(simname, pos, look_at);
+ }
+
+ public void llAddToLandBanList(string avatar, double hours)
+ {
+ m_LSL_Functions.llAddToLandBanList(avatar, hours);
+ }
+
+ public void llRemoveFromLandPassList(string avatar)
+ {
+ m_LSL_Functions.llRemoveFromLandPassList(avatar);
+ }
+
+ public void llRemoveFromLandBanList(string avatar)
+ {
+ m_LSL_Functions.llRemoveFromLandBanList(avatar);
+ }
+
+ public void llSetCameraParams(LSL_Types.list rules)
+ {
+ m_LSL_Functions.llSetCameraParams(rules);
+ }
+
+ public void llClearCameraParams()
+ {
+ m_LSL_Functions.llClearCameraParams();
+ }
+
+ public double llListStatistics(int operation, LSL_Types.list src)
+ {
+ return m_LSL_Functions.llListStatistics(operation, src);
+ }
+
+ public LSL_Types.LSLInteger llGetUnixTime()
+ {
+ return m_LSL_Functions.llGetUnixTime();
+ }
+
+ public LSL_Types.LSLInteger llGetParcelFlags(vector pos)
+ {
+ return m_LSL_Functions.llGetParcelFlags(pos);
+ }
+
+ public LSL_Types.LSLInteger llGetRegionFlags()
+ {
+ return m_LSL_Functions.llGetRegionFlags();
+ }
+
+ public string llXorBase64StringsCorrect(string str1, string str2)
+ {
+ return m_LSL_Functions.llXorBase64StringsCorrect(str1, str2);
+ }
+
+ public string llHTTPRequest(string url, LSL_Types.list parameters, string body)
+ {
+ return m_LSL_Functions.llHTTPRequest(url, parameters, body);
+ }
+
+ public void llResetLandBanList()
+ {
+ m_LSL_Functions.llResetLandBanList();
+ }
+
+ public void llResetLandPassList()
+ {
+ m_LSL_Functions.llResetLandPassList();
+ }
+
+ public LSL_Types.LSLInteger llGetParcelPrimCount(vector pos, int category, int sim_wide)
+ {
+ return m_LSL_Functions.llGetParcelPrimCount(pos, category, sim_wide);
+ }
+
+ public LSL_Types.list llGetParcelPrimOwners(vector pos)
+ {
+ return m_LSL_Functions.llGetParcelPrimOwners(pos);
+ }
+
+ public LSL_Types.LSLInteger llGetObjectPrimCount(string object_id)
+ {
+ return m_LSL_Functions.llGetObjectPrimCount(object_id);
+ }
+
+ public LSL_Types.LSLInteger llGetParcelMaxPrims(vector pos, int sim_wide)
+ {
+ return m_LSL_Functions.llGetParcelMaxPrims(pos, sim_wide);
+ }
+
+ public LSL_Types.list llGetParcelDetails(vector pos, LSL_Types.list param)
+ {
+ return m_LSL_Functions.llGetParcelDetails(pos, param);
+ }
+
+ public void llSetLinkTexture(int linknumber, string texture, int face)
+ {
+ m_LSL_Functions.llSetLinkTexture(linknumber, texture, face);
+ }
+
+ public string llStringTrim(string src, int type)
+ {
+ return m_LSL_Functions.llStringTrim(src, type);
+ }
+
+ public LSL_Types.list llGetObjectDetails(string id, LSL_Types.list args)
+ {
+ return m_LSL_Functions.llGetObjectDetails(id, args);
+ }
+
+ public double llList2Float(LSL_Types.list src, int index)
+ {
+ return m_LSL_Functions.llList2Float(src, index);
+ }
+ }
+}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
new file mode 100644
index 0000000..168804d
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -0,0 +1,199 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Runtime.Remoting.Lifetime;
+using System.Threading;
+using System.Reflection;
+using System.Collections;
+using System.Collections.Generic;
+using OpenSim.Region.Environment.Interfaces;
+using OpenSim.Region.ScriptEngine.Interfaces;
+using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
+using integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
+using key = System.String;
+using vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
+using rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
+
+namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
+{
+ public partial class ScriptBaseClass : MarshalByRefObject
+ {
+ public IOSSL_Api m_OSSL_Functions;
+
+ public void ApiTypeOSSL(IScriptApi api)
+ {
+ if(!(api is IOSSL_Api))
+ return;
+
+ m_OSSL_Functions = (IOSSL_Api)api;
+ }
+
+ public void osSetRegionWaterHeight(double height)
+ {
+ m_OSSL_Functions.osSetRegionWaterHeight(height);
+ }
+
+ public double osList2Double(LSL_Types.list src, int index)
+ {
+ return m_OSSL_Functions.osList2Double(src, index);
+ }
+
+ public string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams,
+ int timer)
+ {
+ return m_OSSL_Functions.osSetDynamicTextureURL(dynamicID, contentType, url, extraParams, timer);
+ }
+
+ public string osSetDynamicTextureData(string dynamicID, string contentType, string data, string extraParams,
+ int timer)
+ {
+ return m_OSSL_Functions.osSetDynamicTextureData(dynamicID, contentType, data, extraParams, timer);
+ }
+
+ public string osSetDynamicTextureURLBlend(string dynamicID, string contentType, string url, string extraParams,
+ int timer, int alpha)
+ {
+ return m_OSSL_Functions.osSetDynamicTextureURLBlend(dynamicID, contentType, url, extraParams, timer, alpha);
+ }
+
+ public string osSetDynamicTextureDataBlend(string dynamicID, string contentType, string data, string extraParams,
+ int timer, int alpha)
+ {
+ return m_OSSL_Functions.osSetDynamicTextureDataBlend(dynamicID, contentType, data, extraParams, timer, alpha);
+ }
+
+ public double osTerrainGetHeight(int x, int y)
+ {
+ return m_OSSL_Functions.osTerrainGetHeight(x, y);
+ }
+
+ public int osTerrainSetHeight(int x, int y, double val)
+ {
+ return m_OSSL_Functions.osTerrainSetHeight(x, y, val);
+ }
+
+ public int osRegionRestart(double seconds)
+ {
+ return m_OSSL_Functions.osRegionRestart(seconds);
+ }
+
+ public void osRegionNotice(string msg)
+ {
+ m_OSSL_Functions.osRegionNotice(msg);
+ }
+
+ public bool osConsoleCommand(string Command)
+ {
+ return m_OSSL_Functions.osConsoleCommand(Command);
+ }
+
+ public void osSetParcelMediaURL(string url)
+ {
+ m_OSSL_Functions.osSetParcelMediaURL(url);
+ }
+
+ public void osSetPrimFloatOnWater(int floatYN)
+ {
+ m_OSSL_Functions.osSetPrimFloatOnWater(floatYN);
+ }
+
+ // Animation Functions
+
+ public void osAvatarPlayAnimation(string avatar, string animation)
+ {
+ m_OSSL_Functions.osAvatarPlayAnimation(avatar, animation);
+ }
+
+ public void osAvatarStopAnimation(string avatar, string animation)
+ {
+ m_OSSL_Functions.osAvatarStopAnimation(avatar, animation);
+ }
+
+
+ //Texture Draw functions
+
+ public string osMovePen(string drawList, int x, int y)
+ {
+ return m_OSSL_Functions.osMovePen(drawList, x, y);
+ }
+
+ public string osDrawLine(string drawList, int startX, int startY, int endX, int endY)
+ {
+ return m_OSSL_Functions.osDrawLine(drawList, startX, startY, endX, endY);
+ }
+
+ public string osDrawLine(string drawList, int endX, int endY)
+ {
+ return m_OSSL_Functions.osDrawLine(drawList, endX, endY);
+ }
+
+ public string osDrawText(string drawList, string text)
+ {
+ return m_OSSL_Functions.osDrawText(drawList, text);
+ }
+
+ public string osDrawEllipse(string drawList, int width, int height)
+ {
+ return m_OSSL_Functions.osDrawEllipse(drawList, width, height);
+ }
+
+ public string osDrawRectangle(string drawList, int width, int height)
+ {
+ return m_OSSL_Functions.osDrawRectangle(drawList, width, height);
+ }
+
+ public string osDrawFilledRectangle(string drawList, int width, int height)
+ {
+ return m_OSSL_Functions.osDrawFilledRectangle(drawList, width, height);
+ }
+
+ public string osSetFontSize(string drawList, int fontSize)
+ {
+ return m_OSSL_Functions.osSetFontSize(drawList, fontSize);
+ }
+
+ public string osSetPenSize(string drawList, int penSize)
+ {
+ return m_OSSL_Functions.osSetPenSize(drawList, penSize);
+ }
+
+ public string osSetPenColour(string drawList, string colour)
+ {
+ return m_OSSL_Functions.osSetPenColour(drawList, colour);
+ }
+
+ public string osDrawImage(string drawList, int width, int height, string imageUrl)
+ {
+ return m_OSSL_Functions.osDrawImage(drawList, width, height, imageUrl);
+ }
+ public void osSetStateEvents(int events)
+ {
+ m_OSSL_Functions.osSetStateEvents(events);
+ }
+ }
+}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.csproj b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.csproj
new file mode 100644
index 0000000..870da9f
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.csproj
@@ -0,0 +1,161 @@
+
+
+ Local
+ 9.0.21022
+ 2.0
+ {21BC44EA-0000-0000-0000-000000000000}
+ Debug
+ AnyCPU
+
+
+
+ OpenSim.Region.ScriptEngine.Shared.Api.Runtime
+ JScript
+ Grid
+ IE50
+ false
+ Library
+
+ OpenSim.Region.ScriptEngine.Shared.Api.Runtime
+
+
+
+
+
+ False
+ 285212672
+ False
+
+
+ TRACE;DEBUG
+
+ True
+ 4096
+ False
+ ..\..\..\..\..\..\bin\
+ False
+ False
+ False
+ 4
+
+
+
+ False
+ 285212672
+ False
+
+
+ TRACE
+
+ False
+ 4096
+ True
+ ..\..\..\..\..\..\bin\
+ False
+ False
+ False
+ 4
+
+
+
+
+ ..\..\..\..\..\..\bin\Axiom.MathLib.dll
+ False
+
+
+ ..\..\..\..\..\..\bin\libsecondlife.dll
+ False
+
+
+ ..\..\..\..\..\..\bin\log4net.dll
+ False
+
+
+ ..\..\..\..\..\..\bin\Nini.dll
+ False
+
+
+ ..\..\..\..\..\..\bin\Nini.dll
+ False
+
+
+ ..\..\..\..\..\..\bin\RAIL.dll
+ False
+
+
+ System.dll
+ False
+
+
+ System.Data.dll
+ False
+
+
+ System.Web.dll
+ False
+
+
+ System.Xml.dll
+ False
+
+
+
+
+ OpenSim
+ {438A9556-0000-0000-0000-000000000000}
+ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ False
+
+
+ OpenSim.Framework
+ {8ACA2445-0000-0000-0000-000000000000}
+ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ False
+
+
+ OpenSim.Framework.Communications
+ {CB52B7E7-0000-0000-0000-000000000000}
+ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ False
+
+
+ OpenSim.Framework.Console
+ {A7CD0630-0000-0000-0000-000000000000}
+ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ False
+
+
+ OpenSim.Region.Environment
+ {DCBA491C-0000-0000-0000-000000000000}
+ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ False
+
+
+ OpenSim.Region.ScriptEngine.Shared
+ {D9F1B557-0000-0000-0000-000000000000}
+ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ False
+
+
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+ Code
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.csproj.user b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.csproj.user
new file mode 100644
index 0000000..c28f556
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.csproj.user
@@ -0,0 +1,12 @@
+
+
+ Debug
+ AnyCPU
+ C:\Data\OpenSim\bin\
+ 9.0.21022
+ ProjectFiles
+ 0
+
+
+
+
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.dll.build b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.dll.build
new file mode 100644
index 0000000..c3af05c
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.dll.build
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.mdp b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.mdp
new file mode 100644
index 0000000..37bedfc
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OpenSim.Region.ScriptEngine.Shared.Api.Runtime.mdp
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs
new file mode 100644
index 0000000..aa2c9c2
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) Contributors, http://opensimulator.org/
+ * See CONTRIBUTORS.TXT for a full list of copyright holders.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the OpenSim Project nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Runtime.Remoting.Lifetime;
+using System.Threading;
+using System.Reflection;
+using System.Collections;
+using System.Collections.Generic;
+using OpenSim.Region.ScriptEngine.Interfaces;
+using OpenSim.Region.ScriptEngine.Shared;
+
+namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
+{
+ public partial class ScriptBaseClass : MarshalByRefObject, IScript
+ {
+ private Dictionary inits = new Dictionary();
+
+ public ScriptBaseClass()
+ {
+ MethodInfo[] myArrayMethodInfo = GetType().GetMethods(BindingFlags.Public|BindingFlags.Instance);
+
+ foreach(MethodInfo mi in myArrayMethodInfo)
+ {
+ if(mi.Name.Length > 7 && mi.Name.Substring(0, 7) == "ApiType")
+ {
+ string type=mi.Name.Substring(7);
+ inits[type]=mi;
+ }
+ }
+ }
+
+ public string[] GetApis()
+ {
+ string[] apis = new string[inits.Count];
+ inits.Keys.CopyTo(apis, 0);
+ return apis;
+ }
+
+ public void InitApi(string api, IScriptApi data)
+ {
+ if(!inits.ContainsKey(api))
+ return;
+
+ MethodInfo mi = inits[api];
+
+ Object[] args = new Object[1];
+ args[0] = data;
+
+ mi.Invoke(this, args);
+ }
+
+ private Dictionary m_InitialValues =
+ new Dictionary();
+ private Dictionary m_Fields =
+ new Dictionary();
+
+ public Dictionary GetVars()
+ {
+ Dictionary vars = new Dictionary();
+
+ if (m_Fields == null)
+ return vars;
+
+ m_Fields.Clear();
+
+ Type t = GetType();
+
+ FieldInfo[] fields = t.GetFields(BindingFlags.NonPublic |
+ BindingFlags.Public |
+ BindingFlags.Instance |
+ BindingFlags.DeclaredOnly);
+
+ foreach (FieldInfo field in fields)
+ {
+ m_Fields[field.Name]=field;
+
+ vars[field.Name]=field.GetValue(this);
+ }
+
+ return vars;
+ }
+
+ public void SetVars(Dictionary vars)
+ {
+ foreach (KeyValuePair var in vars)
+ {
+ if (m_Fields.ContainsKey(var.Key))
+ {
+ m_Fields[var.Key].SetValue(this, var.Value);
+ }
+ }
+ }
+
+ public void ResetVars()
+ {
+ SetVars(m_InitialValues);
+ }
+ }
+}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Atom.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Atom.cs
new file mode 100644
index 0000000..27ab04e
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Atom.cs
@@ -0,0 +1,218 @@
+/*
+ * Copyright (C) 2007-2008, Jeff Thompson
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the copyright holder nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
+{
+ public class Atom : IUnifiable
+ {
+ private static Dictionary _atomStore = new Dictionary();
+ public readonly string _name;
+ public readonly Atom _module;
+
+ ///
+ /// You should not call this constructor, but use Atom.a instead.
+ ///
+ ///
+ ///
+ private Atom(string name, Atom module)
+ {
+ _name = name;
+ _module = module;
+ }
+
+ ///
+ /// Return the unique Atom object for name where module is null. You should use this to create
+ /// an Atom instead of calling the Atom constructor.
+ ///
+ ///
+ ///
+ public static Atom a(string name)
+ {
+ Atom atom;
+ if (!_atomStore.TryGetValue(name, out atom))
+ {
+ atom = new Atom(name, null);
+ _atomStore[name] = atom;
+ }
+ return atom;
+ }
+
+ ///
+ /// Return an Atom object with the name and module. If module is null or Atom.NIL,
+ /// this behaves like Atom.a(name) and returns the unique object where the module is null.
+ /// If module is not null or Atom.NIL, this may or may not be the same object as another Atom
+ /// with the same name and module.
+ ///
+ ///
+ ///
+ ///
+ public static Atom a(string name, Atom module)
+ {
+ if (module == null || module == Atom.NIL)
+ return a(name);
+ return new Atom(name, module);
+ }
+
+ ///
+ /// If Obj is an Atom unify its _module with Module. If the Atom's _module is null, use Atom.NIL.
+ ///
+ ///
+ ///
+ ///
+ public static IEnumerable module(object Obj, object Module)
+ {
+ Obj = YP.getValue(Obj);
+ if (Obj is Atom)
+ {
+ if (((Atom)Obj)._module == null)
+ return YP.unify(Module, Atom.NIL);
+ else
+ return YP.unify(Module, ((Atom)Obj)._module);
+ }
+ return YP.fail();
+ }
+
+ public static readonly Atom NIL = Atom.a("[]");
+ public static readonly Atom DOT = Atom.a(".");
+ public static readonly Atom F = Atom.a("f");
+ public static readonly Atom SLASH = Atom.a("/");
+ public static readonly Atom HAT = Atom.a("^");
+ public static readonly Atom RULE = Atom.a(":-");
+
+ public IEnumerable unify(object arg)
+ {
+ arg = YP.getValue(arg);
+ if (arg is Atom)
+ return Equals(arg) ? YP.succeed() : YP.fail();
+ else if (arg is Variable)
+ return ((Variable)arg).unify(this);
+ else
+ return YP.fail();
+ }
+
+ public void addUniqueVariables(List variableSet)
+ {
+ // Atom does not contain variables.
+ }
+
+ public object makeCopy(Variable.CopyStore copyStore)
+ {
+ // Atom does not contain variables that need to be copied.
+ return this;
+ }
+
+ public bool termEqual(object term)
+ {
+ return Equals(YP.getValue(term));
+ }
+
+ public bool ground()
+ {
+ // Atom is always ground.
+ return true;
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (obj is Atom)
+ {
+ if (_module == null && ((Atom)obj)._module == null)
+ // When _declaringClass is null, we always use an identical object from _atomStore.
+ return this == obj;
+ // Otherwise, ignore _declaringClass and do a normal string compare on the _name.
+ return _name == ((Atom)obj)._name;
+ }
+ return false;
+ }
+
+ public override string ToString()
+ {
+ return _name;
+ }
+
+ public override int GetHashCode()
+ {
+ // Debug: need to check _declaringClass.
+ return _name.GetHashCode();
+ }
+
+ public string toQuotedString()
+ {
+ if (_name.Length == 0)
+ return "''";
+ else if (this == Atom.NIL)
+ return "[]";
+
+ StringBuilder result = new StringBuilder(_name.Length);
+ bool useQuotes = false;
+ foreach (char c in _name)
+ {
+ int cInt = (int)c;
+ if (c == '\'')
+ {
+ result.Append("''");
+ useQuotes = true;
+ }
+ else if (c == '_' || cInt >= (int)'a' && cInt <= (int)'z' ||
+ cInt >= (int)'A' && cInt <= (int)'Z' || cInt >= (int)'0' && cInt <= (int)'9')
+ result.Append(c);
+ else
+ {
+ // Debug: Need to handle non-printable chars.
+ result.Append(c);
+ useQuotes = true;
+ }
+ }
+
+ if (!useQuotes && (int)_name[0] >= (int)'a' && (int)_name[0] <= (int)'z')
+ return result.ToString();
+ else
+ {
+ // Surround in single quotes.
+ result.Append('\'');
+ return "'" + result;
+ }
+ }
+
+ ///
+ /// Return true if _name is lexicographically less than atom._name.
+ ///
+ ///
+ ///
+ public bool lessThan(Atom atom)
+ {
+ return _name.CompareTo(atom._name) < 0;
+ }
+ }
+}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs
new file mode 100644
index 0000000..70c1b5a
--- /dev/null
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs
@@ -0,0 +1,234 @@
+/*
+ * Copyright (C) 2007-2008, Jeff Thompson
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the copyright holder nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
+{
+ ///
+ /// A BagofAnswers holds answers for bagof and setof.
+ ///
+ public class BagofAnswers
+ {
+ private object _template;
+ private Variable[] _freeVariables;
+ private Dictionary