[RLVa] - changed : reimplemented the @adjustheight command using LL's new hover functionalit
This commit is contained in:
@@ -1696,8 +1696,26 @@ ERlvCmdRet RlvHandler::processForceCommand(const RlvCommand& rlvCmd) const
|
||||
case RLV_BHVR_SIT: // @sit:<option>=force
|
||||
eRet = onForceSit(rlvCmd);
|
||||
break;
|
||||
case RLV_BHVR_ADJUSTHEIGHT: // @adjustheight:<options>=force
|
||||
eRet = RLV_RET_DEPRECATED;
|
||||
case RLV_BHVR_ADJUSTHEIGHT: // @adjustheight:<options>=force - Checked: 2015-03-30 (RLVa-1.5.0)
|
||||
{
|
||||
RlvCommandOptionAdjustHeight rlvCmdOption(rlvCmd);
|
||||
VERIFY_OPTION(rlvCmdOption.isValid());
|
||||
if (isAgentAvatarValid())
|
||||
{
|
||||
F32 nValue = (rlvCmdOption.m_nPelvisToFoot - gAgentAvatarp->getPelvisToFoot()) * rlvCmdOption.m_nPelvisToFootDeltaMult;
|
||||
nValue += rlvCmdOption.m_nPelvisToFootOffset;
|
||||
if (gAgentAvatarp->getRegion()->avatarHoverHeightEnabled())
|
||||
{
|
||||
LLVector3 avOffset(0.0, 0.0, llclamp<F32>(nValue, MIN_HOVER_Z, MAX_HOVER_Z));
|
||||
gSavedPerAccountSettings.setF32("AvatarHoverOffsetZ", avOffset.mV[VZ]);
|
||||
gAgentAvatarp->setHoverOffset(avOffset, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
eRet = RLV_RET_FAILED_DISABLED;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case RLV_BHVR_TPTO: // @tpto:<option>=force - Checked: 2011-03-28 (RLVa-1.3.0f) | Modified: RLVa-1.3.0f
|
||||
{
|
||||
|
||||
@@ -336,6 +336,25 @@ bool RlvCommandOptionGetPath::getItemIDs(LLWearableType::EType wtType, uuid_vec_
|
||||
return (cntItemsPrev != idItems.size());
|
||||
}
|
||||
|
||||
// Checked: 2015-03-30 (RLVa-1.5.0)
|
||||
RlvCommandOptionAdjustHeight::RlvCommandOptionAdjustHeight(const RlvCommand& rlvCmd)
|
||||
: m_nPelvisToFoot(0.0f), m_nPelvisToFootDeltaMult(0.0f), m_nPelvisToFootOffset(0.0f)
|
||||
{
|
||||
std::vector<std::string> cmdTokens;
|
||||
boost::split(cmdTokens, rlvCmd.getOption(), boost::is_any_of(std::string(";")));
|
||||
if (1 == cmdTokens.size())
|
||||
{
|
||||
m_fValid = (LLStringUtil::convertToF32(cmdTokens[0], m_nPelvisToFootOffset));
|
||||
m_nPelvisToFootOffset /= 100;
|
||||
}
|
||||
else if ( (2 <= cmdTokens.size()) && (cmdTokens.size() <= 3) )
|
||||
{
|
||||
m_fValid = (LLStringUtil::convertToF32(cmdTokens[0], m_nPelvisToFoot)) &&
|
||||
(LLStringUtil::convertToF32(cmdTokens[1], m_nPelvisToFootDeltaMult)) &&
|
||||
( (2 == cmdTokens.size()) || (LLStringUtil::convertToF32(cmdTokens[2], m_nPelvisToFootOffset)) );
|
||||
}
|
||||
}
|
||||
|
||||
// Checked: 2011-03-28 (RLVa-1.3.0f) | Added: RLVa-1.3.0f
|
||||
RlvCommandOptionTpTo::RlvCommandOptionTpTo(const RlvCommand &rlvCmd)
|
||||
{
|
||||
|
||||
@@ -153,6 +153,15 @@ protected:
|
||||
uuid_vec_t m_idItems;
|
||||
};
|
||||
|
||||
struct RlvCommandOptionAdjustHeight : public RlvCommandOption
|
||||
{
|
||||
RlvCommandOptionAdjustHeight(const RlvCommand& rlvCmd);
|
||||
|
||||
F32 m_nPelvisToFoot;
|
||||
F32 m_nPelvisToFootDeltaMult;
|
||||
F32 m_nPelvisToFootOffset;
|
||||
};
|
||||
|
||||
struct RlvCommandOptionTpTo : public RlvCommandOption
|
||||
{
|
||||
RlvCommandOptionTpTo(const RlvCommand& rlvCmd);
|
||||
|
||||
Reference in New Issue
Block a user