summaryrefslogtreecommitdiff
path: root/indra/newview/llhudeffectresetskeleton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llhudeffectresetskeleton.cpp')
-rw-r--r--indra/newview/llhudeffectresetskeleton.cpp246
1 files changed, 123 insertions, 123 deletions
diff --git a/indra/newview/llhudeffectresetskeleton.cpp b/indra/newview/llhudeffectresetskeleton.cpp
index aceb306955..aa5532f0fc 100644
--- a/indra/newview/llhudeffectresetskeleton.cpp
+++ b/indra/newview/llhudeffectresetskeleton.cpp
@@ -1,25 +1,25 @@
-/**
+/**
* @file llhudeffectresetskeleton.cpp
* @brief LLHUDEffectResetSkeleton class implementation
*
* $LicenseInfo:firstyear=2024&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2024, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -41,8 +41,8 @@ const S32 PKT_SIZE = 17;
//-----------------------------------------------------------------------------
// LLHUDEffectResetSkeleton()
//-----------------------------------------------------------------------------
-LLHUDEffectResetSkeleton::LLHUDEffectResetSkeleton(const U8 type) :
- LLHUDEffect(type)
+LLHUDEffectResetSkeleton::LLHUDEffectResetSkeleton(const U8 type) :
+ LLHUDEffect(type)
{
}
@@ -58,28 +58,28 @@ LLHUDEffectResetSkeleton::~LLHUDEffectResetSkeleton()
//-----------------------------------------------------------------------------
void LLHUDEffectResetSkeleton::packData(LLMessageSystem *mesgsys)
{
- // Pack the default data
- LLHUDEffect::packData(mesgsys);
-
- // Pack the type-specific data. Uses a fun packed binary format. Whee!
- U8 packed_data[PKT_SIZE];
- memset(packed_data, 0, PKT_SIZE);
-
- // pack both target object and position
- // position interpreted as offset if target object is non-null
- if (mTargetObject)
- {
- htolememcpy(&(packed_data[TARGET_OBJECT]), mTargetObject->mID.mData, MVT_LLUUID, 16);
- }
- else
- {
- htolememcpy(&(packed_data[TARGET_OBJECT]), LLUUID::null.mData, MVT_LLUUID, 16);
- }
-
- U8 resetAnimations = (U8)mResetAnimations;
- htolememcpy(&(packed_data[RESET_ANIMATIONS]), &resetAnimations, MVT_U8, 1);
-
- mesgsys->addBinaryDataFast(_PREHASH_TypeData, packed_data, PKT_SIZE);
+ // Pack the default data
+ LLHUDEffect::packData(mesgsys);
+
+ // Pack the type-specific data. Uses a fun packed binary format. Whee!
+ U8 packed_data[PKT_SIZE];
+ memset(packed_data, 0, PKT_SIZE);
+
+ // pack both target object and position
+ // position interpreted as offset if target object is non-null
+ if (mTargetObject)
+ {
+ htolememcpy(&(packed_data[TARGET_OBJECT]), mTargetObject->mID.mData, MVT_LLUUID, 16);
+ }
+ else
+ {
+ htolememcpy(&(packed_data[TARGET_OBJECT]), LLUUID::null.mData, MVT_LLUUID, 16);
+ }
+
+ U8 resetAnimations = (U8)mResetAnimations;
+ htolememcpy(&(packed_data[RESET_ANIMATIONS]), &resetAnimations, MVT_U8, 1);
+
+ mesgsys->addBinaryDataFast(_PREHASH_TypeData, packed_data, PKT_SIZE);
}
//-----------------------------------------------------------------------------
@@ -87,64 +87,64 @@ void LLHUDEffectResetSkeleton::packData(LLMessageSystem *mesgsys)
//-----------------------------------------------------------------------------
void LLHUDEffectResetSkeleton::unpackData(LLMessageSystem *mesgsys, S32 blocknum)
{
- LLVector3d new_target;
- U8 packed_data[PKT_SIZE];
-
-
- LLHUDEffect::unpackData(mesgsys, blocknum);
-
- LLUUID source_id;
- mesgsys->getUUIDFast(_PREHASH_Effect, _PREHASH_AgentID, source_id, blocknum);
-
- LLViewerObject *objp = gObjectList.findObject(source_id);
- if (objp && objp->isAvatar())
- {
- setSourceObject(objp);
- }
- else
- {
- //LL_WARNS() << "Could not find source avatar for ResetSkeleton effect" << LL_ENDL;
- return;
- }
-
- S32 size = mesgsys->getSizeFast(_PREHASH_Effect, blocknum, _PREHASH_TypeData);
- if (size != PKT_SIZE)
- {
- LL_WARNS() << "ResetSkeleton effect with bad size " << size << LL_ENDL;
- return;
- }
-
- mesgsys->getBinaryDataFast(_PREHASH_Effect, _PREHASH_TypeData, packed_data, PKT_SIZE, blocknum);
-
- LLUUID target_id;
- htolememcpy(target_id.mData, &(packed_data[TARGET_OBJECT]), MVT_LLUUID, 16);
-
- // The purpose for having a target ID is if we want to reset animesh, or
- // other things in the future.
- // I implemented this, but due to issues regarding various permission
- // checks, I scrapped it for now. --Chaser Zaks
- // See https://github.com/secondlife/viewer/pull/1212 for additional info
-
- if (target_id.isNull())
- {
- target_id = source_id;
- }
-
- objp = gObjectList.findObject(target_id);
-
- if (objp)
- {
- setTargetObject(objp);
- }
-
- U8 resetAnimations = 0;
- htolememcpy(&resetAnimations, &(packed_data[RESET_ANIMATIONS]), MVT_U8, 1);
-
- // Pre-emptively assume this is going to be flags in the future.
- // It isn't needed now, but this will assure that only bit 1 is set
- mResetAnimations = resetAnimations & 1;
-
- update();
+ LLVector3d new_target;
+ U8 packed_data[PKT_SIZE];
+
+
+ LLHUDEffect::unpackData(mesgsys, blocknum);
+
+ LLUUID source_id;
+ mesgsys->getUUIDFast(_PREHASH_Effect, _PREHASH_AgentID, source_id, blocknum);
+
+ LLViewerObject *objp = gObjectList.findObject(source_id);
+ if (objp && objp->isAvatar())
+ {
+ setSourceObject(objp);
+ }
+ else
+ {
+ //LL_WARNS() << "Could not find source avatar for ResetSkeleton effect" << LL_ENDL;
+ return;
+ }
+
+ S32 size = mesgsys->getSizeFast(_PREHASH_Effect, blocknum, _PREHASH_TypeData);
+ if (size != PKT_SIZE)
+ {
+ LL_WARNS() << "ResetSkeleton effect with bad size " << size << LL_ENDL;
+ return;
+ }
+
+ mesgsys->getBinaryDataFast(_PREHASH_Effect, _PREHASH_TypeData, packed_data, PKT_SIZE, blocknum);
+
+ LLUUID target_id;
+ htolememcpy(target_id.mData, &(packed_data[TARGET_OBJECT]), MVT_LLUUID, 16);
+
+ // The purpose for having a target ID is if we want to reset animesh, or
+ // other things in the future.
+ // I implemented this, but due to issues regarding various permission
+ // checks, I scrapped it for now. --Chaser Zaks
+ // See https://github.com/secondlife/viewer/pull/1212 for additional info
+
+ if (target_id.isNull())
+ {
+ target_id = source_id;
+ }
+
+ objp = gObjectList.findObject(target_id);
+
+ if (objp)
+ {
+ setTargetObject(objp);
+ }
+
+ U8 resetAnimations = 0;
+ htolememcpy(&resetAnimations, &(packed_data[RESET_ANIMATIONS]), MVT_U8, 1);
+
+ // Pre-emptively assume this is going to be flags in the future.
+ // It isn't needed now, but this will assure that only bit 1 is set
+ mResetAnimations = resetAnimations & 1;
+
+ update();
}
//-----------------------------------------------------------------------------
@@ -152,7 +152,7 @@ void LLHUDEffectResetSkeleton::unpackData(LLMessageSystem *mesgsys, S32 blocknum
//-----------------------------------------------------------------------------
void LLHUDEffectResetSkeleton::setTargetObject(LLViewerObject *objp)
{
- mTargetObject = objp;
+ mTargetObject = objp;
}
@@ -161,16 +161,16 @@ void LLHUDEffectResetSkeleton::setTargetObject(LLViewerObject *objp)
//-----------------------------------------------------------------------------
void LLHUDEffectResetSkeleton::markDead()
{
- LLHUDEffect::markDead();
+ LLHUDEffect::markDead();
}
void LLHUDEffectResetSkeleton::setSourceObject(LLViewerObject* objectp)
{
- // restrict source objects to avatars
- if (objectp && objectp->isAvatar())
- {
- LLHUDEffect::setSourceObject(objectp);
- }
+ // restrict source objects to avatars
+ if (objectp && objectp->isAvatar())
+ {
+ LLHUDEffect::setSourceObject(objectp);
+ }
}
//-----------------------------------------------------------------------------
@@ -178,33 +178,33 @@ void LLHUDEffectResetSkeleton::setSourceObject(LLViewerObject* objectp)
//-----------------------------------------------------------------------------
void LLHUDEffectResetSkeleton::update()
{
- // If the target object is dead, set the target object to NULL
- if (mTargetObject.isNull() || mTargetObject->isDead())
- {
- markDead();
- return;
- }
-
- if (mSourceObject.isNull() || mSourceObject->isDead())
- {
- markDead();
- return;
- }
-
- if (mTargetObject->isAvatar())
- {
- // Only the owner of a avatar can reset their skeleton like this
- if (mSourceObject->getID() == mTargetObject->getID())
- {
- LLVOAvatar* avatar = mTargetObject->asAvatar();
- avatar->resetSkeleton(mResetAnimations);
- }
- }
- else
- {
- LL_WARNS() << mSourceObject->getID() << " attempted to reset skeleton on "
- << mTargetObject->getID() << ", but it is not a avatar!" << LL_ENDL;
- }
-
- markDead();
+ // If the target object is dead, set the target object to NULL
+ if (mTargetObject.isNull() || mTargetObject->isDead())
+ {
+ markDead();
+ return;
+ }
+
+ if (mSourceObject.isNull() || mSourceObject->isDead())
+ {
+ markDead();
+ return;
+ }
+
+ if (mTargetObject->isAvatar())
+ {
+ // Only the owner of a avatar can reset their skeleton like this
+ if (mSourceObject->getID() == mTargetObject->getID())
+ {
+ LLVOAvatar* avatar = mTargetObject->asAvatar();
+ avatar->resetSkeleton(mResetAnimations);
+ }
+ }
+ else
+ {
+ LL_WARNS() << mSourceObject->getID() << " attempted to reset skeleton on "
+ << mTargetObject->getID() << ", but it is not a avatar!" << LL_ENDL;
+ }
+
+ markDead();
}