summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Todd Stinson <stinson@lindenlab.com>2012-09-14 17:56:42 -0700
committerWilliam Todd Stinson <stinson@lindenlab.com>2012-09-14 17:56:42 -0700
commitae10e78d978360871556b1cee615cd79ef381184 (patch)
tree0849232f24a8fd936601aa9d9769111781b76019
parent42a50551b52b8d1c5208d9d34354874b73d357f9 (diff)
Added some initial basic decoding of the material value per face.
-rwxr-xr-xindra/llprimitive/llprimitive.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp
index 6dee192783..40e6bedd49 100755
--- a/indra/llprimitive/llprimitive.cpp
+++ b/indra/llprimitive/llprimitive.cpp
@@ -1357,6 +1357,7 @@ S32 LLPrimitive::unpackTEMessage(LLDataPacker &dp)
U8 bump[MAX_TES];
U8 media_flags[MAX_TES];
U8 glow[MAX_TES];
+ unsigned char material_id[MAX_TES*16];
const U32 MAX_TE_BUFFER = 4096;
U8 packed_buffer[MAX_TE_BUFFER];
@@ -1399,6 +1400,25 @@ S32 LLPrimitive::unpackTEMessage(LLDataPacker &dp)
cur_ptr += unpackTEField(cur_ptr, packed_buffer+size, (U8 *)media_flags, 1, face_count, MVT_U8);
cur_ptr++;
cur_ptr += unpackTEField(cur_ptr, packed_buffer+size, (U8 *)glow, 1, face_count, MVT_U8);
+ cur_ptr++;
+ cur_ptr += unpackTEField(cur_ptr, packed_buffer+size, (U8 *)material_id, 16, face_count, MVT_LLUUID);
+
+ for (U32 curFace = 0U; curFace < face_count; ++curFace)
+ {
+ std::string materialID(reinterpret_cast<char *>(&material_id[curFace * 16]), 16);
+ std::string materialIDString;
+ for (unsigned int i = 0U; i < 4U; ++i)
+ {
+ if (i != 0U)
+ {
+ materialIDString += "-";
+ }
+ const U32 *value = reinterpret_cast<const U32*>(&materialID.c_str()[i * 4]);
+ materialIDString += llformat("%08x", *value);
+ }
+
+ llinfos << "STINSON DEBUG: found material ID for face #" << curFace << " => " << materialIDString << llendl;
+ }
for (i = 0; i < face_count; i++)
{