560 lines
17 KiB
C#
560 lines
17 KiB
C#
/*
|
|
* 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.
|
|
*
|
|
*/
|
|
/* Original code: Tedd Hansen */
|
|
using System;
|
|
|
|
namespace OpenSim.Region.ScriptEngine.LSOEngine.LSO
|
|
{
|
|
public static class LSO_Enums
|
|
{
|
|
//public System.Collections.Generic.Dictionary<Byte, Type> OpCode_Add_Types;
|
|
|
|
//LSO_Enums() {
|
|
// OpCode_Add_Types.Add(51, typeof(String));
|
|
// OpCode_Add_Types.Add(17, typeof(UInt32));
|
|
//}
|
|
|
|
[Serializable]
|
|
public enum OpCode_Add_TypeDefs
|
|
{
|
|
String = 51,
|
|
UInt32 = 17
|
|
}
|
|
|
|
[Serializable]
|
|
public enum OpCode_Cast_TypeDefs
|
|
{
|
|
String = 19
|
|
}
|
|
|
|
[Serializable]
|
|
public struct Key
|
|
{
|
|
public string KeyString;
|
|
}
|
|
|
|
[Serializable]
|
|
public struct Vector
|
|
{
|
|
public UInt32 Z;
|
|
public UInt32 Y;
|
|
public UInt32 X;
|
|
}
|
|
|
|
[Serializable]
|
|
public struct Rotation
|
|
{
|
|
public UInt32 S;
|
|
public UInt32 Z;
|
|
public UInt32 Y;
|
|
public UInt32 X;
|
|
}
|
|
|
|
[Serializable]
|
|
public enum Variable_Type_Codes
|
|
{
|
|
Void = 0,
|
|
Integer = 1,
|
|
Float = 2,
|
|
String = 3,
|
|
Key = 4,
|
|
Vector = 5,
|
|
Rotation = 6,
|
|
List = 7,
|
|
Null = 8
|
|
}
|
|
|
|
[Serializable]
|
|
public enum Event_Mask_Values
|
|
{
|
|
state_entry = 0,
|
|
state_exit = 1,
|
|
touch_start = 2,
|
|
touch = 3,
|
|
touch_end = 4,
|
|
collision_start = 5,
|
|
collision = 6,
|
|
collision_end = 7,
|
|
land_collision_start = 8,
|
|
land_collision = 9,
|
|
land_collision_end = 10,
|
|
timer = 11,
|
|
listen = 12,
|
|
on_rez = 13,
|
|
sensor = 14,
|
|
no_sensor = 15,
|
|
control = 16,
|
|
money = 17,
|
|
email = 18,
|
|
at_target = 19,
|
|
not_at_target = 20,
|
|
at_rot_target = 21,
|
|
not_at_rot_target = 22,
|
|
run_time_permissions = 23,
|
|
changed = 24,
|
|
attach = 25,
|
|
dataserver = 26,
|
|
link_message = 27,
|
|
moving_start = 28,
|
|
moving_end = 29,
|
|
object_rez = 30,
|
|
remote_data = 31,
|
|
http_response = 32
|
|
}
|
|
|
|
[Serializable]
|
|
public enum Operation_Table
|
|
{
|
|
NOOP = 0x0,
|
|
POP = 0x1,
|
|
POPS = 0x2,
|
|
POPL = 0x3,
|
|
POPV = 0x4,
|
|
POPQ = 0x5,
|
|
POPARG = 0x6,
|
|
POPIP = 0x7,
|
|
POPBP = 0x8,
|
|
POPSP = 0x9,
|
|
POPSLR = 0xa,
|
|
DUP = 0x20,
|
|
DUPS = 0x21,
|
|
DUPL = 0x22,
|
|
DUPV = 0x23,
|
|
DUPQ = 0x24,
|
|
STORE = 0x30,
|
|
STORES = 0x31,
|
|
STOREL = 0x32,
|
|
STOREV = 0x33,
|
|
STOREQ = 0x34,
|
|
STOREG = 0x35,
|
|
STOREGS = 0x36,
|
|
STOREGL = 0x37,
|
|
STOREGV = 0x38,
|
|
STOREGQ = 0x39,
|
|
LOADP = 0x3a,
|
|
LOADSP = 0x3b,
|
|
LOADLP = 0x3c,
|
|
LOADVP = 0x3d,
|
|
LOADQP = 0x3e,
|
|
LOADGP = 0x3f,
|
|
LOADGSP = 0x40,
|
|
LOADGLP = 0x41,
|
|
LOADGVP = 0x42,
|
|
LOADGQP = 0x43,
|
|
PUSH = 0x50,
|
|
PUSHS = 0x51,
|
|
PUSHL = 0x52,
|
|
PUSHV = 0x53,
|
|
PUSHQ = 0x54,
|
|
PUSHG = 0x55,
|
|
PUSHGS = 0x56,
|
|
PUSHGL = 0x57,
|
|
PUSHGV = 0x58,
|
|
PUSHGQ = 0x59,
|
|
PUSHIP = 0x5a,
|
|
PUSHBP = 0x5b,
|
|
PUSHSP = 0x5c,
|
|
PUSHARGB = 0x5d,
|
|
PUSHARGI = 0x5e,
|
|
PUSHARGF = 0x5f,
|
|
PUSHARGS = 0x60,
|
|
PUSHARGV = 0x61,
|
|
PUSHARGQ = 0x62,
|
|
PUSHE = 0x63,
|
|
PUSHEV = 0x64,
|
|
PUSHEQ = 0x65,
|
|
PUSHARGE = 0x66,
|
|
ADD = 0x70,
|
|
SUB = 0x71,
|
|
MUL = 0x72,
|
|
DIV = 0x73,
|
|
MOD = 0x74,
|
|
EQ = 0x75,
|
|
NEQ = 0x76,
|
|
LEQ = 0x77,
|
|
GEQ = 0x78,
|
|
LESS = 0x79,
|
|
GREATER = 0x7a,
|
|
BITAND = 0x7b,
|
|
BITOR = 0x7c,
|
|
BITXOR = 0x7d,
|
|
BOOLAND = 0x7e,
|
|
BOOLOR = 0x7f,
|
|
NEG = 0x80,
|
|
BITNOT = 0x81,
|
|
BOOLNOT = 0x82,
|
|
JUMP = 0x90,
|
|
JUMPIF = 0x91,
|
|
JUMPNIF = 0x92,
|
|
STATE = 0x93,
|
|
CALL = 0x94,
|
|
RETURN = 0x95,
|
|
CAST = 0xa0,
|
|
STACKTOS = 0xb0,
|
|
STACKTOL = 0xb1,
|
|
PRINT = 0xc0,
|
|
CALLLIB = 0xd0,
|
|
CALLLIB_TWO_BYTE = 0xd1,
|
|
SHL = 0xe0,
|
|
SHR = 0xe1
|
|
}
|
|
|
|
[Serializable]
|
|
public enum BuiltIn_Functions
|
|
{
|
|
llSin = 0,
|
|
llCos = 1,
|
|
llTan = 2,
|
|
llAtan2 = 3,
|
|
llSqrt = 4,
|
|
llPow = 5,
|
|
llAbs = 6,
|
|
llFabs = 7,
|
|
llFrand = 8,
|
|
llFloor = 9,
|
|
llCeil = 10,
|
|
llRound = 11,
|
|
llVecMag = 12,
|
|
llVecNorm = 13,
|
|
llVecDist = 14,
|
|
llRot2Euler = 15,
|
|
llEuler2Rot = 16,
|
|
llAxes2Rot = 17,
|
|
llRot2Fwd = 18,
|
|
llRot2Left = 19,
|
|
llRot2Up = 20,
|
|
llRotBetween = 21,
|
|
llWhisper = 22,
|
|
llSay = 23,
|
|
llShout = 24,
|
|
llListen = 25,
|
|
llListenControl = 26,
|
|
llListenRemove = 27,
|
|
llSensor = 28,
|
|
llSensorRepeat = 29,
|
|
llSensorRemove = 30,
|
|
llDetectedName = 31,
|
|
llDetectedKey = 32,
|
|
llDetectedOwner = 33,
|
|
llDetectedType = 34,
|
|
llDetectedPos = 35,
|
|
llDetectedVel = 36,
|
|
llDetectedGrab = 37,
|
|
llDetectedRot = 38,
|
|
llDetectedGroup = 39,
|
|
llDetectedLinkNumber = 40,
|
|
llDie = 41,
|
|
llGround = 42,
|
|
llCloud = 43,
|
|
llWind = 44,
|
|
llSetStatus = 45,
|
|
llGetStatus = 46,
|
|
llSetScale = 47,
|
|
llGetScale = 48,
|
|
llSetColor = 49,
|
|
llGetAlpha = 50,
|
|
llSetAlpha = 51,
|
|
llGetColor = 52,
|
|
llSetTexture = 53,
|
|
llScaleTexture = 54,
|
|
llOffsetTexture = 55,
|
|
llRotateTexture = 56,
|
|
llGetTexture = 57,
|
|
llSetPos = 58,
|
|
llGetPos = 59,
|
|
llGetLocalPos = 60,
|
|
llSetRot = 61,
|
|
llGetRot = 62,
|
|
llGetLocalRot = 63,
|
|
llSetForce = 64,
|
|
llGetForce = 65,
|
|
llTarget = 66,
|
|
llTargetRemove = 67,
|
|
llRotTarget = 68,
|
|
llRotTargetRemove = 69,
|
|
llMoveToTarget = 70,
|
|
llStopMoveToTarget = 71,
|
|
llApplyImpulse = 72,
|
|
llApplyRotationalImpulse = 73,
|
|
llSetTorque = 74,
|
|
llGetTorque = 75,
|
|
llSetForceAndTorque = 76,
|
|
llGetVel = 77,
|
|
llGetAccel = 78,
|
|
llGetOmega = 79,
|
|
llGetTimeOfDay = 80,
|
|
llGetWallclock = 81,
|
|
llGetTime = 82,
|
|
llResetTime = 83,
|
|
llGetAndResetTime = 84,
|
|
llSound = 85,
|
|
llPlaySound = 86,
|
|
llLoopSound = 87,
|
|
llLoopSoundMaster = 88,
|
|
llLoopSoundSlave = 89,
|
|
llPlaySoundSlave = 90,
|
|
llTriggerSound = 91,
|
|
llStopSound = 92,
|
|
llPreloadSound = 93,
|
|
llGetSubString = 94,
|
|
llDeleteSubString = 95,
|
|
llInsertString = 96,
|
|
llToUpper = 97,
|
|
llToLower = 98,
|
|
llGiveMoney = 99,
|
|
llMakeExplosion = 100,
|
|
llMakeFountain = 101,
|
|
llMakeSmoke = 102,
|
|
llMakeFire = 103,
|
|
llRezObject = 104,
|
|
llLookAt = 105,
|
|
llStopLookAt = 106,
|
|
llSetTimerEvent = 107,
|
|
llSleep = 108,
|
|
llGetMass = 109,
|
|
llCollisionFilter = 110,
|
|
llTakeControls = 111,
|
|
llReleaseControls = 112,
|
|
llAttachToAvatar = 113,
|
|
llDetachFromAvatar = 114,
|
|
llTakeCamera = 115,
|
|
llReleaseCamera = 116,
|
|
llGetOwner = 117,
|
|
llInstantMessage = 118,
|
|
llEmail = 119,
|
|
llGetNextEmail = 120,
|
|
llGetKey = 121,
|
|
llSetBuoyancy = 122,
|
|
llSetHoverHeight = 123,
|
|
llStopHover = 124,
|
|
llMinEventDelay = 125,
|
|
llSoundPreload = 126,
|
|
llRotLookAt = 127,
|
|
llStringLength = 128,
|
|
llStartAnimation = 129,
|
|
llStopAnimation = 130,
|
|
llPointAt = 131,
|
|
llStopPointAt = 132,
|
|
llTargetOmega = 133,
|
|
llGetStartParameter = 134,
|
|
llGodLikeRezObject = 135,
|
|
llRequestPermissions = 136,
|
|
llGetPermissionsKey = 137,
|
|
llGetPermissions = 138,
|
|
llGetLinkNumber = 139,
|
|
llSetLinkColor = 140,
|
|
llCreateLink = 141,
|
|
llBreakLink = 142,
|
|
llBreakAllLinks = 143,
|
|
llGetLinkKey = 144,
|
|
llGetLinkName = 145,
|
|
llGetInventoryNumber = 146,
|
|
llGetInventoryName = 147,
|
|
llSetScriptState = 148,
|
|
llGetEnergy = 149,
|
|
llGiveInventory = 150,
|
|
llRemoveInventory = 151,
|
|
llSetText = 152,
|
|
llWater = 153,
|
|
llPassTouches = 154,
|
|
llRequestAgentData = 155,
|
|
llRequestInventoryData = 156,
|
|
llSetDamage = 157,
|
|
llTeleportAgentHome = 158,
|
|
llModifyLand = 159,
|
|
llCollisionSound = 160,
|
|
llCollisionSprite = 161,
|
|
llGetAnimation = 162,
|
|
llResetScript = 163,
|
|
llMessageLinked = 164,
|
|
llPushObject = 165,
|
|
llPassCollisions = 166,
|
|
llGetScriptName = 167,
|
|
llGetNumberOfSides = 168,
|
|
llAxisAngle2Rot = 169,
|
|
llRot2Axis = 170,
|
|
llRot2Angle = 171,
|
|
llAcos = 172,
|
|
llAsin = 173,
|
|
llAngleBetween = 174,
|
|
llGetInventoryKey = 175,
|
|
llAllowInventoryDrop = 176,
|
|
llGetSunDirection = 177,
|
|
llGetTextureOffset = 178,
|
|
llGetTextureScale = 179,
|
|
llGetTextureRot = 180,
|
|
llSubStringIndex = 181,
|
|
llGetOwnerKey = 182,
|
|
llGetCenterOfMass = 183,
|
|
llListSort = 184,
|
|
llGetListLength = 185,
|
|
llList2Integer = 186,
|
|
llList2Float = 187,
|
|
llList2String = 188,
|
|
llList2Key = 189,
|
|
llList2Vector = 190,
|
|
llList2Rot = 191,
|
|
llList2List = 192,
|
|
llDeleteSubList = 193,
|
|
llGetListEntryType = 194,
|
|
llList2CSV = 195,
|
|
llCSV2List = 196,
|
|
llListRandomize = 197,
|
|
llList2ListStrided = 198,
|
|
llGetRegionCorner = 199,
|
|
llListInsertList = 200,
|
|
llListFindList = 201,
|
|
llGetObjectName = 202,
|
|
llSetObjectName = 203,
|
|
llGetDate = 204,
|
|
llEdgeOfWorld = 205,
|
|
llGetAgentInfo = 206,
|
|
llAdjustSoundVolume = 207,
|
|
llSetSoundQueueing = 208,
|
|
llSetSoundRadius = 209,
|
|
llKey2Name = 210,
|
|
llSetTextureAnim = 211,
|
|
llTriggerSoundLimited = 212,
|
|
llEjectFromLand = 213,
|
|
llParseString2List = 214,
|
|
llOverMyLand = 215,
|
|
llGetLandOwnerAt = 216,
|
|
llGetNotecardLine = 217,
|
|
llGetAgentSize = 218,
|
|
llSameGroup = 219,
|
|
llUnSit = 220,
|
|
llGroundSlope = 221,
|
|
llGroundNormal = 222,
|
|
llGroundContour = 223,
|
|
llGetAttached = 224,
|
|
llGetFreeMemory = 225,
|
|
llGetRegionName = 226,
|
|
llGetRegionTimeDilation = 227,
|
|
llGetRegionFPS = 228,
|
|
llParticleSystem = 229,
|
|
llGroundRepel = 230,
|
|
llGiveInventoryList = 231,
|
|
llSetVehicleType = 232,
|
|
llSetVehicleFloatParam = 233,
|
|
llSetVehicleVectorParam = 234,
|
|
llSetVehicleRotationParam = 235,
|
|
llSetVehicleFlags = 236,
|
|
llRemoveVehicleFlags = 237,
|
|
llSitTarget = 238,
|
|
llAvatarOnSitTarget = 239,
|
|
llAddToLandPassList = 240,
|
|
llSetTouchText = 241,
|
|
llSetSitText = 242,
|
|
llSetCameraEyeOffset = 243,
|
|
llSetCameraAtOffset = 244,
|
|
llDumpList2String = 245,
|
|
llScriptDanger = 246,
|
|
llDialog = 247,
|
|
llVolumeDetect = 248,
|
|
llResetOtherScript = 249,
|
|
llGetScriptState = 250,
|
|
llRemoteLoadScript = 251,
|
|
llSetRemoteScriptAccessPin = 252,
|
|
llRemoteLoadScriptPin = 253,
|
|
llOpenRemoteDataChannel = 254,
|
|
llSendRemoteData = 255,
|
|
llRemoteDataReply = 256,
|
|
llCloseRemoteDataChannel = 257,
|
|
llMD5String = 258,
|
|
llSetPrimitiveParams = 259,
|
|
llStringToBase64 = 260,
|
|
llBase64ToString = 261,
|
|
llXorBase64Strings = 262,
|
|
llRemoteDataSetRegion = 263,
|
|
llLog10 = 264,
|
|
llLog = 265,
|
|
llGetAnimationList = 266,
|
|
llSetParcelMusicURL = 267,
|
|
llGetRootPosition = 268,
|
|
llGetRootRotation = 269,
|
|
llGetObjectDesc = 270,
|
|
llSetObjectDesc = 271,
|
|
llGetCreator = 272,
|
|
llGetTimestamp = 273,
|
|
llSetLinkAlpha = 274,
|
|
llGetNumberOfPrims = 275,
|
|
llGetNumberOfNotecardLines = 276,
|
|
llGetBoundingBox = 277,
|
|
llGetGeometricCenter = 278,
|
|
llGetPrimitiveParams = 279,
|
|
llIntegerToBase64 = 280,
|
|
llBase64ToInteger = 281,
|
|
llGetGMTclock = 282,
|
|
llGetSimulatorHostname = 283,
|
|
llSetLocalRot = 284,
|
|
llParseStringKeepNulls = 285,
|
|
llRezAtRoot = 286,
|
|
llGetObjectPermMask = 287,
|
|
llSetObjectPermMask = 288,
|
|
llGetInventoryPermMask = 289,
|
|
llSetInventoryPermMask = 290,
|
|
llGetInventoryCreator = 291,
|
|
llOwnerSay = 292,
|
|
llRequestSimulatorData = 293,
|
|
llForceMouselook = 294,
|
|
llGetObjectMass = 295,
|
|
llListReplaceList = 296,
|
|
llLoadURL = 297,
|
|
llParcelMediaCommandList = 298,
|
|
llParcelMediaQuery = 299,
|
|
llModPow = 300,
|
|
llGetInventoryType = 301,
|
|
llSetPayPrice = 302,
|
|
llGetCameraPos = 303,
|
|
llGetCameraRot = 304,
|
|
llSetPrimURL = 305,
|
|
llRefreshPrimURL = 306,
|
|
llEscapeURL = 307,
|
|
llUnescapeURL = 308,
|
|
llMapDestination = 309,
|
|
llAddToLandBanList = 310,
|
|
llRemoveFromLandPassList = 311,
|
|
llRemoveFromLandBanList = 312,
|
|
llSetCameraParams = 313,
|
|
llClearCameraParams = 314,
|
|
llListStatistics = 315,
|
|
llGetUnixTime = 316,
|
|
llGetParcelFlags = 317,
|
|
llGetRegionFlags = 318,
|
|
llXorBase64StringsCorrect = 319,
|
|
llHTTPRequest = 320,
|
|
llResetLandBanList = 321,
|
|
llResetLandPassList = 322,
|
|
llGetParcelPrimCount = 323,
|
|
llGetParcelPrimOwners = 324,
|
|
llGetObjectPrimCount = 325,
|
|
llGetParcelMaxPrims = 326,
|
|
llGetParcelDetails = 327
|
|
}
|
|
}
|
|
} |