aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-01-12 19:37:30 +0000
committerJustin Clark-Casey (justincc)2012-01-12 19:37:30 +0000
commitc4972e773465172d33d72f94d3f5e37cec1b8831 (patch)
tree876d187c646b2fc8290f6222719fd83dc2c6589a
parentAllow all NPCs to show up on sensors as all osNpc* script methods now check f... (diff)
downloadopensim-SC-c4972e773465172d33d72f94d3f5e37cec1b8831.zip
opensim-SC-c4972e773465172d33d72f94d3f5e37cec1b8831.tar.gz
opensim-SC-c4972e773465172d33d72f94d3f5e37cec1b8831.tar.bz2
opensim-SC-c4972e773465172d33d72f94d3f5e37cec1b8831.tar.xz
Add osNpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, int options) variant.
This will be documented soon. Options can currently be OS_NPC_CREATE_OWNED - creates a 'creator owned' avatar that will only respond to osNpc* functions made by scripts owned by the npc creator OS_NPC_NOT_OWNED - creates an avatar which will respond to any osNpc* functions that a caller has permission to make (through the usual OSSL permission mechanisms). options is being added to provide better scope for future extensibility without having to add more functions The original non-options osNpcCreate() function will continue to exist.
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs6
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs1
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs3
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs5
4 files changed, 15 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 509bbec..25e4789 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -2089,6 +2089,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2089 return NpcCreate(firstname, lastname, position, notecard, false); 2089 return NpcCreate(firstname, lastname, position, notecard, false);
2090 } 2090 }
2091 2091
2092 public LSL_Key osNpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, int options)
2093 {
2094 CheckThreatLevel(ThreatLevel.High, "osNpcCreate");
2095 return NpcCreate(firstname, lastname, position, notecard, (options & ScriptBaseClass.OS_NPC_NOT_OWNED) == 0);
2096 }
2097
2092 private LSL_Key NpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, bool owned) 2098 private LSL_Key NpcCreate(string firstname, string lastname, LSL_Vector position, string notecard, bool owned)
2093 { 2099 {
2094 INPCModule module = World.RequestModuleInterface<INPCModule>(); 2100 INPCModule module = World.RequestModuleInterface<INPCModule>();
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index f92f51f..ddfc20d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -172,6 +172,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
172 LSL_List osGetLinkPrimitiveParams(int linknumber, LSL_List rules); 172 LSL_List osGetLinkPrimitiveParams(int linknumber, LSL_List rules);
173 173
174 key osNpcCreate(string user, string name, vector position, string notecard); 174 key osNpcCreate(string user, string name, vector position, string notecard);
175 key osNpcCreate(string user, string name, vector position, string notecard, int options);
175 key osNpcCreateOwned(string user, string name, vector position, string notecard); 176 key osNpcCreateOwned(string user, string name, vector position, string notecard);
176 LSL_Key osNpcSaveAppearance(key npc, string notecard); 177 LSL_Key osNpcSaveAppearance(key npc, string notecard);
177 void osNpcLoadAppearance(key npc, string notecard); 178 void osNpcLoadAppearance(key npc, string notecard);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
index b58cf57..176dc56 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
@@ -606,6 +606,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
606 606
607 public const int OS_NPC_SIT_NOW = 0; 607 public const int OS_NPC_SIT_NOW = 0;
608 608
609 public const int OS_NPC_CREATOR_OWNED = 0x1;
610 public const int OS_NPC_NOT_OWNED = 0x2;
611
609 public const string URL_REQUEST_GRANTED = "URL_REQUEST_GRANTED"; 612 public const string URL_REQUEST_GRANTED = "URL_REQUEST_GRANTED";
610 public const string URL_REQUEST_DENIED = "URL_REQUEST_DENIED"; 613 public const string URL_REQUEST_DENIED = "URL_REQUEST_DENIED";
611 614
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index a94392a..ceccceb 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -488,6 +488,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
488 return m_OSSL_Functions.osNpcCreate(user, name, position, cloneFrom); 488 return m_OSSL_Functions.osNpcCreate(user, name, position, cloneFrom);
489 } 489 }
490 490
491 public key osNpcCreate(string user, string name, vector position, key cloneFrom, int options)
492 {
493 return m_OSSL_Functions.osNpcCreate(user, name, position, cloneFrom, options);
494 }
495
491 public key osNpcCreateOwned(string user, string name, vector position, key cloneFrom) 496 public key osNpcCreateOwned(string user, string name, vector position, key cloneFrom)
492 { 497 {
493 return m_OSSL_Functions.osNpcCreateOwned(user, name, position, cloneFrom); 498 return m_OSSL_Functions.osNpcCreateOwned(user, name, position, cloneFrom);