Fix crash when clicking on << >> buttons and the AO wasn't set up with animations yet.
parent
937b540882
commit
47776e3ae1
|
|
@ -142,6 +142,10 @@ BOOL FloaterAO::postBuild()
|
|||
mCycleTimeTextLabel=aoPanel->getChild<LLTextBox>("ao_cycle_time_seconds_label");
|
||||
mCycleTimeSpinner=aoPanel->getChild<LLSpinCtrl>("ao_cycle_time");
|
||||
|
||||
mPreviousButton=aoPanel->getChild<LLButton>("ao_previous");
|
||||
mNextButton=aoPanel->getChild<LLButton>("ao_next");
|
||||
mReloadButton=aoPanel->getChild<LLButton>("ao_reload");
|
||||
|
||||
mSetSelector->setCommitCallback(boost::bind(&FloaterAO::onSelectSet,this));
|
||||
mActivateSetButton->setCommitCallback(boost::bind(&FloaterAO::onClickActivate,this));
|
||||
mAddButton->setCommitCallback(boost::bind(&FloaterAO::onClickAdd,this));
|
||||
|
|
@ -151,6 +155,9 @@ BOOL FloaterAO::postBuild()
|
|||
mSmartCheckBox->setCommitCallback(boost::bind(&FloaterAO::onCheckSmart,this));
|
||||
mDisableMouselookCheckBox->setCommitCallback(boost::bind(&FloaterAO::onCheckDisableStands,this));
|
||||
|
||||
mPreviousButton->setCommitCallback(boost::bind(&FloaterAO::onClickPrevious,this));
|
||||
mNextButton->setCommitCallback(boost::bind(&FloaterAO::onClickNext,this));
|
||||
|
||||
mAnimationList->setCommitOnSelectionChange(TRUE);
|
||||
|
||||
mStateSelector->setCommitCallback(boost::bind(&FloaterAO::onSelectState,this));
|
||||
|
|
@ -163,9 +170,7 @@ BOOL FloaterAO::postBuild()
|
|||
|
||||
updateSmart();
|
||||
|
||||
aoPanel->getChild<LLButton>("ao_reload")->setCommitCallback(boost::bind(&FloaterAO::onClickReload,this));
|
||||
aoPanel->getChild<LLButton>("ao_previous")->setCommitCallback(boost::bind(&FloaterAO::onClickPrevious,this));
|
||||
aoPanel->getChild<LLButton>("ao_next")->setCommitCallback(boost::bind(&FloaterAO::onClickNext,this));
|
||||
mReloadButton->setCommitCallback(boost::bind(&FloaterAO::onClickReload,this));
|
||||
|
||||
AOEngine::instance().setReloadCallback(boost::bind(&FloaterAO::updateList,this));
|
||||
|
||||
|
|
@ -191,6 +196,8 @@ void FloaterAO::enableStateControls(BOOL yes)
|
|||
mRandomizeCheckBox->setEnabled(yes);
|
||||
mCycleTimeTextLabel->setEnabled(yes);
|
||||
mCycleTimeSpinner->setEnabled(yes);
|
||||
mPreviousButton->setEnabled(yes);
|
||||
mNextButton->setEnabled(yes);
|
||||
mCanDragAndDrop=yes;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -110,6 +110,11 @@ class FloaterAO
|
|||
LLTextBox* mCycleTimeTextLabel;
|
||||
LLSpinCtrl* mCycleTimeSpinner;
|
||||
|
||||
LLButton* mReloadButton;
|
||||
|
||||
LLButton* mPreviousButton;
|
||||
LLButton* mNextButton;
|
||||
|
||||
BOOL mCanDragAndDrop;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -387,6 +387,12 @@ void AOEngine::cycleTimeout(const AOSet* set)
|
|||
|
||||
void AOEngine::cycle(eCycleMode cycleMode)
|
||||
{
|
||||
if(!mCurrentSet)
|
||||
{
|
||||
lldebugs << "cycle without set." << llendl;
|
||||
return;
|
||||
}
|
||||
|
||||
LLUUID motion=mCurrentSet->getMotion();
|
||||
|
||||
// assume stand if no motion is registered, happens after login when the avatar hasn't moved at all yet
|
||||
|
|
@ -406,6 +412,12 @@ void AOEngine::cycle(eCycleMode cycleMode)
|
|||
return;
|
||||
}
|
||||
|
||||
if(!state->mAnimations.size())
|
||||
{
|
||||
lldebugs << "cycle without animations in state." << llendl;
|
||||
return;
|
||||
}
|
||||
|
||||
LLUUID animation=state->mCurrentAnimationID;
|
||||
if(!animation.isNull())
|
||||
gAgent.sendAnimationRequest(animation,ANIM_REQUEST_STOP);
|
||||
|
|
|
|||
Loading…
Reference in New Issue