From ef32d1d6b03aad55b26c5e1537cdbc47c6b6c0c4 Mon Sep 17 00:00:00 2001
From: Kelly Washington <kelly@lindenlab.com>
Date: Thu, 26 Jul 2007 16:51:08 +0000
Subject: merge -r66262:66263 linden/branches/kelly/llgetobjectdetails-2

---
 indra/llcommon/lllslconstants.h                   | 11 +++++++++++
 indra/lscript/lscript_compile/indra.l             | 10 ++++++++++
 indra/lscript/lscript_library/lscript_library.cpp |  2 ++
 indra/newview/app_settings/keywords.ini           | 10 ++++++++++
 4 files changed, 33 insertions(+)

(limited to 'indra')

diff --git a/indra/llcommon/lllslconstants.h b/indra/llcommon/lllslconstants.h
index 87234a463c..9f6ac1c521 100644
--- a/indra/llcommon/lllslconstants.h
+++ b/indra/llcommon/lllslconstants.h
@@ -146,4 +146,15 @@ const S32 STRING_TRIM_HEAD = 0x01;
 const S32 STRING_TRIM_TAIL = 0x02;
 const S32 STRING_TRIM = STRING_TRIM_HEAD | STRING_TRIM_TAIL;
 
+// llGetObjectDetails
+const S32 OBJECT_UNKOWN_DETAIL = -1;
+const S32 OBJECT_NAME = 1;
+const S32 OBJECT_DESC = 2;
+const S32 OBJECT_POS = 3;
+const S32 OBJECT_ROT = 4;
+const S32 OBJECT_VELOCITY = 5;
+const S32 OBJECT_OWNER = 6;
+const S32 OBJECT_GROUP = 7;
+const S32 OBJECT_CREATOR = 8;
+
 #endif
diff --git a/indra/lscript/lscript_compile/indra.l b/indra/lscript/lscript_compile/indra.l
index 2ff1028f74..94cb196aea 100644
--- a/indra/lscript/lscript_compile/indra.l
+++ b/indra/lscript/lscript_compile/indra.l
@@ -227,6 +227,16 @@ extern "C" { int yyerror(const char *fmt, ...); }
 "CHANGED_REGION"		{ count(); yylval.ival = 0x100; return(INTEGER_CONSTANT); }	
 "CHANGED_TELEPORT"		{ count(); yylval.ival = 0x200; return(INTEGER_CONSTANT); }	
 
+"OBJECT_UNKOWN_DETAIL"	{ count(); yylval.ival = OBJECT_UNKOWN_DETAIL; return(INTEGER_CONSTANT); }
+"OBJECT_NAME"			{ count(); yylval.ival = OBJECT_NAME; return(INTEGER_CONSTANT); }
+"OBJECT_DESC"			{ count(); yylval.ival = OBJECT_DESC; return(INTEGER_CONSTANT); }
+"OBJECT_POS"			{ count(); yylval.ival = OBJECT_POS; return(INTEGER_CONSTANT); }
+"OBJECT_ROT"			{ count(); yylval.ival = OBJECT_ROT; return(INTEGER_CONSTANT); }
+"OBJECT_VELOCITY"		{ count(); yylval.ival = OBJECT_VELOCITY; return(INTEGER_CONSTANT); }
+"OBJECT_OWNER"			{ count(); yylval.ival = OBJECT_OWNER; return(INTEGER_CONSTANT); }
+"OBJECT_GROUP"			{ count(); yylval.ival = OBJECT_GROUP; return(INTEGER_CONSTANT); }
+"OBJECT_CREATOR"		{ count(); yylval.ival = OBJECT_CREATOR; return(INTEGER_CONSTANT); }
+
 "TYPE_INTEGER"			{ count(); yylval.ival = LST_INTEGER; return(INTEGER_CONSTANT); }	
 "TYPE_FLOAT"			{ count(); yylval.ival = LST_FLOATINGPOINT; return(INTEGER_CONSTANT); }	
 "TYPE_STRING"			{ count(); yylval.ival = LST_STRING; return(INTEGER_CONSTANT); }	
diff --git a/indra/lscript/lscript_library/lscript_library.cpp b/indra/lscript/lscript_library/lscript_library.cpp
index 46717594de..f3a5e95169 100644
--- a/indra/lscript/lscript_library/lscript_library.cpp
+++ b/indra/lscript/lscript_library/lscript_library.cpp
@@ -406,6 +406,8 @@ void LLScriptLibrary::init()
 	addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llStringTrim", "s", "si", "string llStringTrim(string src, integer trim_type)\nTrim leading and/or trailing spaces from a string.\nUses trim_type of STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL."));
 	addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llRegionSay", NULL, "is", "llRegionSay(integer channel, string msg)\nbroadcasts msg to entire region on channel (not 0.)"));
 
+	addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetObjectDetails", "l", "kl", "list llGetObjectDetails(key id, list params)\nGets the object details specified in params for the object with key id.\nDetails are OBJECT_DETAILS_NAME, _DESCRIPTION, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR."));
+
 	// energy, sleep, dummy_func, name, return type, parameters, help text, gods-only
 
 	// IF YOU ADD NEW SCRIPT CALLS, YOU MUST PUT THEM AT THE END OF THIS LIST.
diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini
index c7f8426804..4496ee746f 100644
--- a/indra/newview/app_settings/keywords.ini
+++ b/indra/newview/app_settings/keywords.ini
@@ -149,6 +149,16 @@ PSYS_SRC_PATTERN_ANGLE
 PSYS_SRC_PATTERN_ANGLE_CONE
 PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
 
+OBJECT_UNKOWN_DETAIL	Returned by llGetObjectDetails when passed an invalid object parameter type.
+OBJECT_NAME				Used with llGetObjectDetails to get an object's name.
+OBJECT_DESC				Used with llGetObjectDetails to get an object's description.
+OBJECT_POS				Used with llGetObjectDetails to get an object's position.
+OBJECT_ROT				Used with llGetObjectDetails to get an object's rotation.
+OBJECT_VELOCITY			Used with llGetObjectDetails to get an object's velocity.
+OBJECT_OWNER			Used with llGetObjectDetails to get an object's owner's key.  Will be NULL_KEY if group owned.
+OBJECT_GROUP			Used with llGetObjectDetails to get an object's group's key.
+OBJECT_CREATOR			Used with llGetObjectDetails to get an object's creator's key.
+
 # some vehicle params
 VEHICLE_TYPE_NONE
 VEHICLE_TYPE_SLED
-- 
cgit v1.2.3