aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL')
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs10
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs13
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs355
3 files changed, 365 insertions, 13 deletions
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs
index 6eadb0e..906b2d3 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs
@@ -4,12 +4,13 @@ using System.Text;
4using System.IO; 4using System.IO;
5using Microsoft.CSharp; 5using Microsoft.CSharp;
6using System.CodeDom.Compiler; 6using System.CodeDom.Compiler;
7using System.Reflection;
7 8
8namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL 9namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
9{ 10{
10 public class Compiler 11 public class Compiler
11 { 12 {
12 private LSL2CS.Converter.LSL2CSConverter LSL_Converter = new LSL2CS.Converter.LSL2CSConverter(); 13 private LSL2CSConverter LSL_Converter = new LSL2CSConverter();
13 private CSharpCodeProvider codeProvider = new CSharpCodeProvider(); 14 private CSharpCodeProvider codeProvider = new CSharpCodeProvider();
14 //private ICodeCompiler icc = codeProvider.CreateCompiler(); 15 //private ICodeCompiler icc = codeProvider.CreateCompiler();
15 public string Compile(string LSOFileName) 16 public string Compile(string LSOFileName)
@@ -25,7 +26,12 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
25 // Do actual compile 26 // Do actual compile
26 System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters(); 27 System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
27 parameters.IncludeDebugInformation = true; 28 parameters.IncludeDebugInformation = true;
28 parameters.ReferencedAssemblies.Add("OpenSim.Region.Environment"); 29 // Add all available assemblies
30 foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
31 {
32 parameters.ReferencedAssemblies.Add(asm.Location);
33 }
34 //parameters.ReferencedAssemblies.Add("OpenSim.Region.Environment");
29 parameters.GenerateExecutable = false; 35 parameters.GenerateExecutable = false;
30 parameters.OutputAssembly = OutFile; 36 parameters.OutputAssembly = OutFile;
31 CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, CS_Code); 37 CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, CS_Code);
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
index d9042b5..99fdb0d 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
3using System.Text; 3using System.Text;
4using System.Text.RegularExpressions; 4using System.Text.RegularExpressions;
5 5
6namespace LSL2CS.Converter 6namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
7{ 7{
8 public class LSL2CSConverter 8 public class LSL2CSConverter
9 { 9 {
@@ -30,6 +30,7 @@ namespace LSL2CS.Converter
30 public string Convert(string Script) 30 public string Convert(string Script)
31 { 31 {
32 string Return = ""; 32 string Return = "";
33 Script = " \r\n" + Script;
33 34
34 // 35 //
35 // Prepare script for processing 36 // Prepare script for processing
@@ -143,7 +144,7 @@ namespace LSL2CS.Converter
143 // Go back to level 0, this is not a state 144 // Go back to level 0, this is not a state
144 in_state = true; 145 in_state = true;
145 current_statename = m.Groups[1].Captures[0].Value; 146 current_statename = m.Groups[1].Captures[0].Value;
146 Console.WriteLine("Current statename: " + current_statename); 147 //Console.WriteLine("Current statename: " + current_statename);
147 cache = Regex.Replace(cache, @"(?![a-zA-Z_]+)\s*([a-zA-Z_]+)[^a-zA-Z_\(\)]*{", "", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline); 148 cache = Regex.Replace(cache, @"(?![a-zA-Z_]+)\s*([a-zA-Z_]+)[^a-zA-Z_\(\)]*{", "", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
148 } 149 }
149 ret += cache; 150 ret += cache;
@@ -160,7 +161,7 @@ namespace LSL2CS.Converter
160 //Replace function names 161 //Replace function names
161 // void dataserver(key query_id, string data) { 162 // void dataserver(key query_id, string data) {
162 //cache = Regex.Replace(cache, @"([^a-zA-Z_]\s*)((?!if|switch|for)[a-zA-Z_]+\s*\([^\)]*\)[^{]*{)", "$1" + "<STATE>" + "$2", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline); 163 //cache = Regex.Replace(cache, @"([^a-zA-Z_]\s*)((?!if|switch|for)[a-zA-Z_]+\s*\([^\)]*\)[^{]*{)", "$1" + "<STATE>" + "$2", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
163 Console.WriteLine("Replacing using statename: " + current_statename); 164 //Console.WriteLine("Replacing using statename: " + current_statename);
164 cache = Regex.Replace(cache, @"^(\s*)((?!if|switch|for)[a-zA-Z0-9_]*\s*\([^\)]*\)[^;]*\{)", @"$1" + current_statename + "_$2", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline); 165 cache = Regex.Replace(cache, @"^(\s*)((?!if|switch|for)[a-zA-Z0-9_]*\s*\([^\)]*\)[^;]*\{)", @"$1" + current_statename + "_$2", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
165 } 166 }
166 167
@@ -219,10 +220,10 @@ namespace LSL2CS.Converter
219 220
220 221
221 // Add namespace, class name and inheritance 222 // Add namespace, class name and inheritance
222 Return = "namespace SecondLife {" + Environment.NewLine; 223 Return = "namespace SecondLife {\r\n";
223 Return += "public class Script : LSL_BaseClass {" + Environment.NewLine; 224 Return += "public class Script : OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass {\r\n";
224 Return += Script; 225 Return += Script;
225 Return += "} }" + Environment.NewLine; 226 Return += "} }\r\n";
226 227
227 return Return; 228 return Return;
228 } 229 }
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs
index a065683..cf91880 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs
@@ -5,17 +5,362 @@ using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler;
5 5
6namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL 6namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
7{ 7{
8 class LSL_BaseClass 8 public class LSL_BaseClass : LSL_BuiltIn_Commands_Interface
9 { 9 {
10 public UInt32 State = 0; 10 public UInt32 State = 0;
11 public LSL_BuiltIn_Commands_Interface LSL_Builtins;
12 11
13 public void Start(LSL_BuiltIn_Commands_Interface LSLBuiltins) 12 public void Start(string FullScriptID)
14 { 13 {
15 LSL_Builtins = LSLBuiltins; 14 Common.SendToLog("OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass.Start() called. FullScriptID: " + FullScriptID);
16 Common.SendToLog("OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass.Start() called");
17 15
18 return; 16 return;
19 } 17 }
18
19
20
21
22
23
24 public float llSin(float f) { return 0; }
25 public float llCos(float f) { return 0; }
26 public float llTan(float f) { return 0; }
27 public float llAtan2(float x, float y) { return 0; }
28 public float llSqrt(float f) { return 0; }
29 public float llPow(float fbase, float fexponent) { return 0; }
30 public UInt32 llAbs(UInt32 i) { return 0; }
31 public float llFabs(float f) { return 0; }
32 public float llFrand(float mag) { return 0; }
33 public UInt32 llFloor(float f) { return 0; }
34 public UInt32 llCeil(float f) { return 0; }
35 public UInt32 llRound(float f) { return 0; }
36 public float llVecMag(Axiom.Math.Vector3 v) { return 0; }
37 public Axiom.Math.Vector3 llVecNorm(Axiom.Math.Vector3 v) { return new Axiom.Math.Vector3(); }
38 public float llVecDist(Axiom.Math.Vector3 a, Axiom.Math.Vector3 b) { return 0; }
39 public Axiom.Math.Vector3 llRot2Euler(Axiom.Math.Quaternion r) { return new Axiom.Math.Vector3(); }
40 public Axiom.Math.Quaternion llEuler2Rot(Axiom.Math.Vector3 v) { return new Axiom.Math.Quaternion(); }
41 public Axiom.Math.Quaternion llAxes2Rot(Axiom.Math.Vector3 fwd, Axiom.Math.Vector3 left, Axiom.Math.Vector3 up) { return new Axiom.Math.Quaternion(); }
42 public Axiom.Math.Vector3 llRot2Fwd(Axiom.Math.Quaternion r) { return new Axiom.Math.Vector3(); }
43 public Axiom.Math.Vector3 llRot2Left(Axiom.Math.Quaternion r) { return new Axiom.Math.Vector3(); }
44 public Axiom.Math.Vector3 llRot2Up(Axiom.Math.Quaternion r) { return new Axiom.Math.Vector3(); }
45 public Axiom.Math.Quaternion llRotBetween(Axiom.Math.Vector3 start, Axiom.Math.Vector3 end) { return new Axiom.Math.Quaternion(); }
46 public void llWhisper(UInt16 channelID, string text)
47 {
48 Common.SendToDebug("INTERNAL FUNCTION llWhisper(" + channelID + ", \"" + text + "\");");
49 Common.SendToLog("llWhisper Channel " + channelID + ", Text: \"" + text + "\"");
50 }
51 //public void llSay(UInt32 channelID, string text)
52 public void llSay(object channelID, object text)
53 {
54 //TODO: DO SOMETHING USEFUL HERE
55 Common.SendToDebug("INTERNAL FUNCTION llSay(" + (UInt32)channelID + ", \"" + (string)text + "\");");
56 Common.SendToLog("llSay Channel " + (UInt32)channelID + ", Text: \"" + (string)text + "\"");
57 }
58 public void llShout(UInt16 channelID, string text) { return; }
59 public UInt32 llListen(UInt16 channelID, string name, string ID, string msg) { return 0; }
60 public void llListenControl(UInt32 number, UInt32 active) { return; }
61 public void llListenRemove(UInt32 number) { return; }
62 public void llSensor(string name, string id, UInt32 type, float range, float arc) { return; }
63 public void llSensorRepeat(string name, string id, UInt32 type, float range, float arc, float rate) { return; }
64 public void llSensorRemove() { return; }
65 public string llDetectedName(UInt32 number) { return ""; }
66 public string llDetectedKey(UInt32 number) { return ""; }
67 public string llDetectedOwner(UInt32 number) { return ""; }
68 public UInt32 llDetectedType(UInt32 number) { return 0; }
69 public Axiom.Math.Vector3 llDetectedPos(UInt32 number) { return new Axiom.Math.Vector3(); }
70 public Axiom.Math.Vector3 llDetectedVel(UInt32 number) { return new Axiom.Math.Vector3(); }
71 public Axiom.Math.Vector3 llDetectedGrab(UInt32 number) { return new Axiom.Math.Vector3(); }
72 public Axiom.Math.Quaternion llDetectedRot(UInt32 number) { return new Axiom.Math.Quaternion(); }
73 public UInt32 llDetectedGroup(UInt32 number) { return 0; }
74 public UInt32 llDetectedLinkNumber(UInt32 number) { return 0; }
75 public void llDie() { return; }
76 public float llGround(Axiom.Math.Vector3 offset) { return 0; }
77 public float llCloud(Axiom.Math.Vector3 offset) { return 0; }
78 public Axiom.Math.Vector3 llWind(Axiom.Math.Vector3 offset) { return new Axiom.Math.Vector3(); }
79 public void llSetStatus(UInt32 status, UInt32 value) { return; }
80 public UInt32 llGetStatus(UInt32 status) { return 0; }
81 public void llSetScale(Axiom.Math.Vector3 scale) { return; }
82 public Axiom.Math.Vector3 llGetScale() { return new Axiom.Math.Vector3(); }
83 public void llSetColor(Axiom.Math.Vector3 color, UInt32 face) { return; }
84 public float llGetAlpha(UInt32 face) { return 0; }
85 public void llSetAlpha(float alpha, UInt32 face) { return; }
86 public Axiom.Math.Vector3 llGetColor(UInt32 face) { return new Axiom.Math.Vector3(); }
87 public void llSetTexture(string texture, UInt32 face) { return; }
88 public void llScaleTexture(float u, float v, UInt32 face) { return; }
89 public void llOffsetTexture(float u, float v, UInt32 face) { return; }
90 public void llRotateTexture(float rotation, UInt32 face) { return; }
91 public string llGetTexture(UInt32 face) { return ""; }
92 public void llSetPos(Axiom.Math.Vector3 pos) { return; }
93
94
95 public void llGetPos() { }
96 public void llGetLocalPos() { }
97 public void llSetRot() { }
98 public void llGetRot() { }
99 public void llGetLocalRot() { }
100 public void llSetForce() { }
101 public void llGetForce() { }
102 public void llTarget() { }
103 public void llTargetRemove() { }
104 public void llRotTarget() { }
105 public void llRotTargetRemove() { }
106 public void llMoveToTarget() { }
107 public void llStopMoveToTarget() { }
108 public void llApplyImpulse() { }
109 public void llApplyRotationalImpulse() { }
110 public void llSetTorque() { }
111 public void llGetTorque() { }
112 public void llSetForceAndTorque() { }
113 public void llGetVel() { }
114 public void llGetAccel() { }
115 public void llGetOmega() { }
116 public void llGetTimeOfDay() { }
117 public void llGetWallclock() { }
118 public void llGetTime() { }
119 public void llResetTime() { }
120 public void llGetAndResetTime() { }
121 public void llSound() { }
122 public void llPlaySound() { }
123 public void llLoopSound() { }
124 public void llLoopSoundMaster() { }
125 public void llLoopSoundSlave() { }
126 public void llPlaySoundSlave() { }
127 public void llTriggerSound() { }
128 public void llStopSound() { }
129 public void llPreloadSound() { }
130 public void llGetSubString() { }
131 public void llDeleteSubString() { }
132 public void llInsertString() { }
133 public void llToUpper() { }
134 public void llToLower() { }
135 public void llGiveMoney() { }
136 public void llMakeExplosion() { }
137 public void llMakeFountain() { }
138 public void llMakeSmoke() { }
139 public void llMakeFire() { }
140 public void llRezObject() { }
141 public void llLookAt() { }
142 public void llStopLookAt() { }
143 public void llSetTimerEvent() { }
144 public void llSleep() { }
145 public void llGetMass() { }
146 public void llCollisionFilter() { }
147 public void llTakeControls() { }
148 public void llReleaseControls() { }
149 public void llAttachToAvatar() { }
150 public void llDetachFromAvatar() { }
151 public void llTakeCamera() { }
152 public void llReleaseCamera() { }
153 public void llGetOwner() { }
154 public void llInstantMessage() { }
155 public void llEmail() { }
156 public void llGetNextEmail() { }
157 public void llGetKey() { }
158 public void llSetBuoyancy() { }
159 public void llSetHoverHeight() { }
160 public void llStopHover() { }
161 public void llMinEventDelay() { }
162 public void llSoundPreload() { }
163 public void llRotLookAt() { }
164 public void llStringLength() { }
165 public void llStartAnimation() { }
166 public void llStopAnimation() { }
167 public void llPointAt() { }
168 public void llStopPointAt() { }
169 public void llTargetOmega() { }
170 public void llGetStartParameter() { }
171 public void llGodLikeRezObject() { }
172 public void llRequestPermissions() { }
173 public void llGetPermissionsKey() { }
174 public void llGetPermissions() { }
175 public void llGetLinkNumber() { }
176 public void llSetLinkColor() { }
177 public void llCreateLink() { }
178 public void llBreakLink() { }
179 public void llBreakAllLinks() { }
180 public void llGetLinkKey() { }
181 public void llGetLinkName() { }
182 public void llGetInventoryNumber() { }
183 public void llGetInventoryName() { }
184 public void llSetScriptState() { }
185 public void llGetEnergy() { }
186 public void llGiveInventory() { }
187 public void llRemoveInventory() { }
188 public void llSetText() { }
189 public void llWater() { }
190 public void llPassTouches() { }
191 public void llRequestAgentData() { }
192 public void llRequestInventoryData() { }
193 public void llSetDamage() { }
194 public void llTeleportAgentHome() { }
195 public void llModifyLand() { }
196 public void llCollisionSound() { }
197 public void llCollisionSprite() { }
198 public void llGetAnimation() { }
199 public void llResetScript() { }
200 public void llMessageLinked() { }
201 public void llPushObject() { }
202 public void llPassCollisions() { }
203 public void llGetScriptName() { }
204 public void llGetNumberOfSides() { }
205 public void llAxisAngle2Rot() { }
206 public void llRot2Axis() { }
207 public void llRot2Angle() { }
208 public void llAcos() { }
209 public void llAsin() { }
210 public void llAngleBetween() { }
211 public void llGetInventoryKey() { }
212 public void llAllowInventoryDrop() { }
213 public void llGetSunDirection() { }
214 public void llGetTextureOffset() { }
215 public void llGetTextureScale() { }
216 public void llGetTextureRot() { }
217 public void llSubStringIndex() { }
218 public void llGetOwnerKey() { }
219 public void llGetCenterOfMass() { }
220 public void llListSort() { }
221 public void llGetListLength() { }
222 public void llList2Integer() { }
223 public void llList2Float() { }
224 public void llList2String() { }
225 public void llList2Key() { }
226 public void llList2Vector() { }
227 public void llList2Rot() { }
228 public void llList2List() { }
229 public void llDeleteSubList() { }
230 public void llGetListEntryType() { }
231 public void llList2CSV() { }
232 public void llCSV2List() { }
233 public void llListRandomize() { }
234 public void llList2ListStrided() { }
235 public void llGetRegionCorner() { }
236 public void llListInsertList() { }
237 public void llListFindList() { }
238 public void llGetObjectName() { }
239 public void llSetObjectName() { }
240 public void llGetDate() { }
241 public void llEdgeOfWorld() { }
242 public void llGetAgentInfo() { }
243 public void llAdjustSoundVolume() { }
244 public void llSetSoundQueueing() { }
245 public void llSetSoundRadius() { }
246 public void llKey2Name() { }
247 public void llSetTextureAnim() { }
248 public void llTriggerSoundLimited() { }
249 public void llEjectFromLand() { }
250 public void llParseString2List() { }
251 public void llOverMyLand() { }
252 public void llGetLandOwnerAt() { }
253 public void llGetNotecardLine() { }
254 public void llGetAgentSize() { }
255 public void llSameGroup() { }
256 public void llUnSit() { }
257 public void llGroundSlope() { }
258 public void llGroundNormal() { }
259 public void llGroundContour() { }
260 public void llGetAttached() { }
261 public void llGetFreeMemory() { }
262 public void llGetRegionName() { }
263 public void llGetRegionTimeDilation() { }
264 public void llGetRegionFPS() { }
265 public void llParticleSystem() { }
266 public void llGroundRepel() { }
267 public void llGiveInventoryList() { }
268 public void llSetVehicleType() { }
269 public void llSetVehicleFloatParam() { }
270 public void llSetVehicleVectorParam() { }
271 public void llSetVehicleRotationParam() { }
272 public void llSetVehicleFlags() { }
273 public void llRemoveVehicleFlags() { }
274 public void llSitTarget() { }
275 public void llAvatarOnSitTarget() { }
276 public void llAddToLandPassList() { }
277 public void llSetTouchText() { }
278 public void llSetSitText() { }
279 public void llSetCameraEyeOffset() { }
280 public void llSetCameraAtOffset() { }
281 public void llDumpList2String() { }
282 public void llScriptDanger() { }
283 public void llDialog() { }
284 public void llVolumeDetect() { }
285 public void llResetOtherScript() { }
286 public void llGetScriptState() { }
287 public void llRemoteLoadScript() { }
288 public void llSetRemoteScriptAccessPin() { }
289 public void llRemoteLoadScriptPin() { }
290 public void llOpenRemoteDataChannel() { }
291 public void llSendRemoteData() { }
292 public void llRemoteDataReply() { }
293 public void llCloseRemoteDataChannel() { }
294 public void llMD5String() { }
295 public void llSetPrimitiveParams() { }
296 public void llStringToBase64() { }
297 public void llBase64ToString() { }
298 public void llXorBase64Strings() { }
299 public void llRemoteDataSetRegion() { }
300 public void llLog10() { }
301 public void llLog() { }
302 public void llGetAnimationList() { }
303 public void llSetParcelMusicURL() { }
304 public void llGetRootPosition() { }
305 public void llGetRootRotation() { }
306 public void llGetObjectDesc() { }
307 public void llSetObjectDesc() { }
308 public void llGetCreator() { }
309 public void llGetTimestamp() { }
310 public void llSetLinkAlpha() { }
311 public void llGetNumberOfPrims() { }
312 public void llGetNumberOfNotecardLines() { }
313 public void llGetBoundingBox() { }
314 public void llGetGeometricCenter() { }
315 public void llGetPrimitiveParams() { }
316 public void llIntegerToBase64() { }
317 public void llBase64ToInteger() { }
318 public void llGetGMTclock() { }
319 public void llGetSimulatorHostname() { }
320 public void llSetLocalRot() { }
321 public void llParseStringKeepNulls() { }
322 public void llRezAtRoot() { }
323 public void llGetObjectPermMask() { }
324 public void llSetObjectPermMask() { }
325 public void llGetInventoryPermMask() { }
326 public void llSetInventoryPermMask() { }
327 public void llGetInventoryCreator() { }
328 public void llOwnerSay() { }
329 public void llRequestSimulatorData() { }
330 public void llForceMouselook() { }
331 public void llGetObjectMass() { }
332 public void llListReplaceList() { }
333 public void llLoadURL() { }
334 public void llParcelMediaCommandList() { }
335 public void llParcelMediaQuery() { }
336 public void llModPow() { }
337 public void llGetInventoryType() { }
338 public void llSetPayPrice() { }
339 public void llGetCameraPos() { }
340 public void llGetCameraRot() { }
341 public void llSetPrimURL() { }
342 public void llRefreshPrimURL() { }
343 public void llEscapeURL() { }
344 public void llUnescapeURL() { }
345 public void llMapDestination() { }
346 public void llAddToLandBanList() { }
347 public void llRemoveFromLandPassList() { }
348 public void llRemoveFromLandBanList() { }
349 public void llSetCameraParams() { }
350 public void llClearCameraParams() { }
351 public void llListStatistics() { }
352 public void llGetUnixTime() { }
353 public void llGetParcelFlags() { }
354 public void llGetRegionFlags() { }
355 public void llXorBase64StringsCorrect() { }
356 public void llHTTPRequest() { }
357 public void llResetLandBanList() { }
358 public void llResetLandPassList() { }
359 public void llGetParcelPrimCount() { }
360 public void llGetParcelPrimOwners() { }
361 public void llGetObjectPrimCount() { }
362 public void llGetParcelMaxPrims() { }
363 public void llGetParcelDetails() { }
364
20 } 365 }
21} 366}