diff --git a/indra/llvfs/llpidlock.cpp b/indra/llvfs/llpidlock.cpp
index cb6442816..93f1af52b 100755
--- a/indra/llvfs/llpidlock.cpp
+++ b/indra/llvfs/llpidlock.cpp
@@ -60,8 +60,12 @@ class LLPidLockFile
{
public:
LLPidLockFile( ) :
- mSaving(FALSE), mWaiting(FALSE),
- mClean(TRUE), mPID(LLApp::getPid())
+ mAutosave(false),
+ mSaving(false),
+ mWaiting(false),
+ mPID(LLApp::getPid()),
+ mNameTable(NULL),
+ mClean(true)
{
mLockName = gDirUtilp->getTempDir() + "/savelock";
}
diff --git a/indra/llvfs/llvfile.h b/indra/llvfs/llvfile.h
index 8db45d30b..c3bca8c73 100644
--- a/indra/llvfs/llvfile.h
+++ b/indra/llvfs/llvfile.h
@@ -80,16 +80,14 @@ public:
static const S32 READ_WRITE;
static const S32 APPEND;
+protected:
LLAssetType::EType mFileType;
LLUUID mFileID;
-
-protected:
S32 mPosition;
S32 mMode;
LLVFS *mVFS;
F32 mPriority;
- BOOL mOnReadQueue;
S32 mBytesRead;
LLVFSThread::handle_t mHandle;
diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 2f92d6212..47433ae01 100755
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -11390,6 +11390,7 @@
getVisualParamWeight(param_name.c_str());
+ return mCharacter->getVisualParamWeight((*entry).second.c_str());
}
void setParamValue(LLViewerVisualParam *param,
const F32 new_value_local,
@@ -194,6 +197,80 @@ BOOL LLPhysicsMotion::initialize()
return TRUE;
}
+std::string LLPhysicsMotionController::getString()
+{
+ std::ostringstream oss;
+ oss << "{" << std::endl <<
+ "Active: " << mActive << std::endl <<
+ "IsDefault: " << mIsDefault << std::endl <<
+ "Stopped: " << isStopped() << std::endl <<
+ "Name: " << getName() << std::endl <<
+ "ID: " << getID().asString() << std::endl;
+
+ for (motion_vec_t::iterator iter = mMotions.begin();iter != mMotions.end();++iter)
+ {
+ (*iter)->getString(oss);
+ }
+ oss << "}" << std::endl;
+ return oss.str();
+}
+void getParamString(U32 depth, LLViewerVisualParam *param, std::ostringstream &oss)
+{
+ std::string indent;
+ indent.resize(depth,' ');
+
+ oss <<
+ indent << "getID: " << param->getID() << std::endl <<
+ indent << "getName: " << param->getName() << std::endl <<
+ indent << "getDisplayName: " << param->getDisplayName() << std::endl <<
+ indent << "getGroup: " << param->getGroup() << std::endl <<
+ indent << "getSex: " << param->getSex() << std::endl <<
+ indent << "getMinWeight: " << param->getMinWeight() << std::endl <<
+ indent << "getMaxWeight: " << param->getMaxWeight() << std::endl <<
+ indent << "getDefaultWeight: " << param->getDefaultWeight() << std::endl <<
+ indent << "getWeight: " << param->getWeight() << std::endl <<
+ indent << "getCurrentWeight: " << param->getCurrentWeight() << std::endl <<
+ indent << "getLastWeight: " << param->getLastWeight() << std::endl <<
+ indent << "isAnimating: " << param->isAnimating() << std::endl <<
+ indent << "isTweakable: " << param->isTweakable() << std::endl;
+}
+void LLPhysicsMotion::getString(std::ostringstream &oss)
+{
+ oss <<
+ " mParamDriverName: " << mParamDriverName << std::endl <<
+ " mParamControllerName: " << mParamControllerName << std::endl <<
+ " mMotionDirectionVec: " << mMotionDirectionVec << std::endl <<
+ " mJointName: " << mJointName << std::endl <<
+ " mPosition_local: " << mPosition_local << std::endl <<
+ " mVelocityJoint_local: " << mVelocityJoint_local << std::endl <<
+ " mAccelerationJoint_local: " << mAccelerationJoint_local << std::endl <<
+ " mPositionLastUpdate_local: " << mPositionLastUpdate_local << std::endl <<
+ " mPosition_world: " << mPosition_world << std::endl <<
+ " mVelocity_local: " << mVelocity_local << std::endl;
+ if(mParamDriver)
+ {
+ oss << " " << std::endl;
+ getParamString(2,mParamDriver,oss);
+ LLDriverParam *driver_param = dynamic_cast(mParamDriver);
+ if(driver_param)
+ {
+ for (LLDriverParam::entry_list_t::iterator iter = driver_param->mDriven.begin();
+ iter != driver_param->mDriven.end();++iter)
+ {
+ oss << " " << std::endl;
+ getParamString(3,iter->mParam,oss);
+ }
+ }
+ }
+ else
+ oss << " mParamDriver: (NULL)" << std::endl;
+ oss << " Controllers:" << std::endl;
+ for(controller_map_t::const_iterator it = mParamControllers.begin(); it!= mParamControllers.end(); ++it)
+ {
+ oss << " mParamControllers[\"" << it->first << "\"] = \"" << it->second << "\" =" << getParamValue(it->first) << std::endl;
+ }
+}
+
LLPhysicsMotionController::LLPhysicsMotionController(const LLUUID &id) :
LLMotion(id),
mCharacter(NULL),
diff --git a/indra/newview/llphysicsmotion.h b/indra/newview/llphysicsmotion.h
index 3ee44f8d5..7e6bddd17 100644
--- a/indra/newview/llphysicsmotion.h
+++ b/indra/newview/llphysicsmotion.h
@@ -51,6 +51,9 @@ class LLPhysicsMotionController :
public LLMotion
{
public:
+
+ std::string getString();
+
// Constructor
LLPhysicsMotionController(const LLUUID &id);
diff --git a/indra/newview/llviewerjointattachment.cpp b/indra/newview/llviewerjointattachment.cpp
index b89e1eeaa..8e8dcef98 100644
--- a/indra/newview/llviewerjointattachment.cpp
+++ b/indra/newview/llviewerjointattachment.cpp
@@ -139,7 +139,7 @@ void LLViewerJointAttachment::setupDrawable(LLViewerObject *object)
LLViewerObject::const_child_list_t& child_list = object->getChildren();
for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin();
- iter != child_list.end(); iter++)
+ iter != child_list.end(); ++iter)
{
LLViewerObject* childp = *iter;
if (childp && childp->mDrawable.notNull())
@@ -197,7 +197,7 @@ BOOL LLViewerJointAttachment::addObject(LLViewerObject* object)
}
LLViewerObject::const_child_list_t& child_list = object->getChildren();
for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin();
- iter != child_list.end(); iter++)
+ iter != child_list.end(); ++iter)
{
LLViewerObject* childp = *iter;
if (childp && childp->mText.notNull())
@@ -266,7 +266,7 @@ void LLViewerJointAttachment::removeObject(LLViewerObject *object)
LLViewerObject::const_child_list_t& child_list = object->getChildren();
for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin();
- iter != child_list.end(); iter++)
+ iter != child_list.end(); ++iter)
{
LLViewerObject* childp = *iter;
if (childp && childp->mDrawable.notNull())
@@ -291,7 +291,7 @@ void LLViewerJointAttachment::removeObject(LLViewerObject *object)
}
LLViewerObject::const_child_list_t& child_list = object->getChildren();
for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin();
- iter != child_list.end(); iter++)
+ iter != child_list.end(); ++iter)
{
LLViewerObject* childp = *iter;
if (childp->mText.notNull())
diff --git a/indra/newview/llviewerjointattachment.h b/indra/newview/llviewerjointattachment.h
index 7037db039..269f7158b 100644
--- a/indra/newview/llviewerjointattachment.h
+++ b/indra/newview/llviewerjointattachment.h
@@ -114,8 +114,8 @@ public:
protected:
void calcLOD();
void setupDrawable(LLViewerObject *object);
-
-protected:
+
+private:
BOOL mVisibleInFirst;
LLVector3 mOriginalPos;
S32 mGroup;
diff --git a/indra/newview/shcommandhandler.cpp b/indra/newview/shcommandhandler.cpp
index da2cc1aa1..a0c5eb9dd 100644
--- a/indra/newview/shcommandhandler.cpp
+++ b/indra/newview/shcommandhandler.cpp
@@ -175,4 +175,27 @@ CMD_SCRIPT(gettext)
}
}
+#include "llphysicsmotion.h"
+
+void cmdline_printchat(std::string message);
+CMD_CHAT(physparams)
+{
+ //args[1] = avatar name
+ for (std::vector::iterator iter = LLCharacter::sInstances.begin();iter != LLCharacter::sInstances.end(); ++iter)
+ {
+ LLVOAvatar* inst = (LLVOAvatar*) *iter;
+ if(!inst)continue;
+ if(inst->getFullname().find(args[1].asString())!=std::string::npos)
+ {
+ LLPhysicsMotionController *motion = (LLPhysicsMotionController*)(inst->findMotion(LLUUID("7360e029-3cb8-ebc4-863e-212df440d987")));
+ cmdline_printchat(std::string("Phys param info for ")+inst->getFullname()+":\n");
+ if(motion)
+ {
+ cmdline_printchat(motion->getString());
+ }
+ else
+ cmdline_printchat("Unable to find physics motion controller\n");
+ }
+ }
+}
#endif //shy_mod