From 8a16b55bf8a87d29c116d9061d9701e8b844cc7b Mon Sep 17 00:00:00 2001
From: simon <none@none>
Date: Tue, 21 May 2013 09:11:50 -0700
Subject: [PATCH] MAINT-2711 : Add missing LSL constants for
 llGetObjectDetails() to the viewer. Reviewed by Kelly

---
 indra/llcommon/lllslconstants.h         | 18 ++++++++++++++++++
 indra/lscript/lscript_compile/indra.l   | 18 ++++++++++++++++++
 indra/newview/app_settings/keywords.ini | 19 +++++++++++++++++++
 3 files changed, 55 insertions(+)

diff --git a/indra/llcommon/lllslconstants.h b/indra/llcommon/lllslconstants.h
index 9f32598e614..83fa5bc2490 100755
--- a/indra/llcommon/lllslconstants.h
+++ b/indra/llcommon/lllslconstants.h
@@ -179,6 +179,24 @@ const S32 OBJECT_VELOCITY = 5;
 const S32 OBJECT_OWNER = 6;
 const S32 OBJECT_GROUP = 7;
 const S32 OBJECT_CREATOR = 8;
+const S32 OBJECT_RUNNING_SCRIPT_COUNT = 9;
+const S32 OBJECT_TOTAL_SCRIPT_COUNT = 10;
+const S32 OBJECT_SCRIPT_MEMORY = 11;
+const S32 OBJECT_SCRIPT_TIME = 12;
+const S32 OBJECT_PRIM_EQUIVALENCE = 13;
+const S32 OBJECT_SERVER_COST = 14;
+const S32 OBJECT_STREAMING_COST = 15;
+const S32 OBJECT_PHYSICS_COST = 16;
+const S32 OBJECT_CHARACTER_TIME = 17;
+const S32 OBJECT_ROOT = 18;
+const S32 OBJECT_ATTACHED_POINT = 19;
+const S32 OBJECT_PATHFINDING_TYPE = 20;
+const S32 OBJECT_PHYSICS = 21;
+const S32 OBJECT_PHANTOM = 22;
+const S32 OBJECT_TEMP_ON_REZ = 23;
+const S32 OBJECT_RENDER_WEIGHT = 24;
+const S32 OBJECT_ATTACHMENT_GEOMETRY_BYTES = 25;
+const S32 OBJECT_ATTACHMENT_SURFACE_AREA = 26;
 
 // llTextBox() magic token string - yes this is a hack.  sue me.
 char const* const TEXTBOX_MAGIC_TOKEN = "!!llTextBox!!";
diff --git a/indra/lscript/lscript_compile/indra.l b/indra/lscript/lscript_compile/indra.l
index c5d11af22b8..e7de5b62106 100755
--- a/indra/lscript/lscript_compile/indra.l
+++ b/indra/lscript/lscript_compile/indra.l
@@ -273,6 +273,24 @@ int yyerror(const char *fmt, ...);
 "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); }
+"OBJECT_RUNNING_SCRIPT_COUNT"	{ count(); yylval.ival = OBJECT_RUNNING_SCRIPT_COUNT; return(INTEGER_CONSTANT); }
+"OBJECT_TOTAL_SCRIPT_COUNT"		{ count(); yylval.ival = OBJECT_TOTAL_SCRIPT_COUNT; return(INTEGER_CONSTANT); }
+"OBJECT_SCRIPT_MEMORY"			{ count(); yylval.ival = OBJECT_SCRIPT_MEMORY; return(INTEGER_CONSTANT); }
+"OBJECT_SCRIPT_TIME"			{ count(); yylval.ival = OBJECT_SCRIPT_TIME; return(INTEGER_CONSTANT); }
+"OBJECT_PRIM_EQUIVALENCE"		{ count(); yylval.ival = OBJECT_PRIM_EQUIVALENCE; return(INTEGER_CONSTANT); }
+"OBJECT_SERVER_COST"			{ count(); yylval.ival = OBJECT_SERVER_COST; return(INTEGER_CONSTANT); }
+"OBJECT_STREAMING_COST"			{ count(); yylval.ival = OBJECT_STREAMING_COST; return(INTEGER_CONSTANT); }
+"OBJECT_PHYSICS_COST"			{ count(); yylval.ival = OBJECT_PHYSICS_COST; return(INTEGER_CONSTANT); }
+"OBJECT_CHARACTER_TIME"			{ count(); yylval.ival = OBJECT_CHARACTER_TIME; return(INTEGER_CONSTANT); }
+"OBJECT_ROOT"					{ count(); yylval.ival = OBJECT_ROOT; return(INTEGER_CONSTANT); }
+"OBJECT_ATTACHED_POINT"			{ count(); yylval.ival = OBJECT_ATTACHED_POINT; return(INTEGER_CONSTANT); }
+"OBJECT_PATHFINDING_TYPE"		{ count(); yylval.ival = OBJECT_PATHFINDING_TYPE; return(INTEGER_CONSTANT); }
+"OBJECT_PHYSICS"				{ count(); yylval.ival = OBJECT_PHYSICS; return(INTEGER_CONSTANT); }
+"OBJECT_PHANTOM"				{ count(); yylval.ival = OBJECT_PHANTOM; return(INTEGER_CONSTANT); }
+"OBJECT_TEMP_ON_REZ"			{ count(); yylval.ival = OBJECT_TEMP_ON_REZ; return(INTEGER_CONSTANT); }
+"OBJECT_RENDER_WEIGHT"			{ count(); yylval.ival = OBJECT_RENDER_WEIGHT; return(INTEGER_CONSTANT); }
+"OBJECT_ATTACHMENT_GEOMETRY_BYTES"		{ count(); yylval.ival = OBJECT_ATTACHMENT_GEOMETRY_BYTES; return(INTEGER_CONSTANT); }
+"OBJECT_ATTACHMENT_SURFACE_AREA"		{ count(); yylval.ival = OBJECT_ATTACHMENT_SURFACE_AREA; return(INTEGER_CONSTANT); }
 
 "TYPE_INTEGER"			{ count(); yylval.ival = LST_INTEGER; return(INTEGER_CONSTANT); }	
 "TYPE_FLOAT"			{ count(); yylval.ival = LST_FLOATINGPOINT; return(INTEGER_CONSTANT); }	
diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini
index 02adbc7af4c..766c9a46049 100755
--- a/indra/newview/app_settings/keywords.ini
+++ b/indra/newview/app_settings/keywords.ini
@@ -177,6 +177,25 @@ 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
+OBJECT_RUNNING_SCRIPT_COUNT		Used with llGetObjectDetails to get the number of running scripts in an object
+OBJECT_TOTAL_SCRIPT_COUNT		Used with llGetObjectDetails to get the total number of scripts in an object
+OBJECT_SCRIPT_MEMORY		Used with llGetObjectDetails to get the total amount of script memory in an object
+OBJECT_SCRIPT_TIME			Used with llGetObjectDetails to get the average script time used by an object
+OBJECT_PRIM_EQUIVALENCE		Used with llGetObjectDetails to get the prim equivalence of an object
+OBJECT_SERVER_COST			Used with llGetObjectDetails to get the server cost of an object
+OBJECT_STREAMING_COST		Used with llGetObjectDetails to get the streaming (download) cost of an object
+OBJECT_PHYSICS_COST			Used with llGetObjectDetails to get the physics cost of an object
+OBJECT_CHARACTER_TIME		Used with llGetObjectDetails to get the pathfinding time (seconds) for an object
+OBJECT_ROOT					Used with llGetObjectDetails to get root ID of an object
+OBJECT_ATTACHED_POINT		Used with llGetObjectDetails to get attachent point where an object is attached
+OBJECT_PATHFINDING_TYPE		Used with llGetObjectDetails to get the pathfinding setting of an object
+OBJECT_PHYSICS				Used with llGetObjectDetails to determine if the object is physical or not
+OBJECT_PHANTOM				Used with llGetObjectDetails to determine if the object is phantom or not
+OBJECT_TEMP_ON_REZ			Used with llGetObjectDetails to determine if the object is temporary or not
+OBJECT_RENDER_WEIGHT		Used with llGetObjectDetails to return an avatar's rendering weight
+OBJECT_ATTACHMENT_GEOMETRY_BYTES	Used with llGetObjectDetails to return an avatar's attachment rendering geometry bytes
+OBJECT_ATTACHMENT_SURFACE_AREA		Used with llGetObjectDetails to return an avatar's attachment surface area
+
 
 # some vehicle params
 VEHICLE_TYPE_NONE
-- 
GitLab