AO on/off now remembered across logins, fixed cycling not working right after login without moving.

meow-7.2.2
ZiRee 2011-04-20 23:52:31 +02:00
parent 083d94821e
commit d2bea9d49a
4 changed files with 33 additions and 15 deletions

View File

@ -39,6 +39,7 @@
#include "llinventoryobserver.h"
#include "llstring.h"
#include "llvfs.h"
#include "llviewercontrol.h"
#include "llviewerinventory.h"
// is there a global define for this folder somewhere?
@ -392,10 +393,14 @@ void AOEngine::cycle(eCycleMode cycleMode)
{
LLUUID motion=mCurrentSet->getMotion();
if(motion==ANIM_AGENT_SIT && !mCurrentSet->getSitOverride())
// assume stand if no motion is registered, happens after login when the avatar hasn't moved at all yet
if(motion.isNull())
motion=ANIM_AGENT_STAND;
// do not cycle if we're sitting and sit-override is off
else if(motion==ANIM_AGENT_SIT && !mCurrentSet->getSitOverride())
return;
if(motion==ANIM_AGENT_STAND && mCurrentSet->getMouselookDisable() && mInMouselook)
// do not cycle if we're standing and mouselook stand override is disabled while being in mouselook
else if(motion==ANIM_AGENT_STAND && mCurrentSet->getMouselookDisable() && mInMouselook)
return;
AOSet::AOState* state=mCurrentSet->getStateByRemapID(motion);
@ -817,18 +822,17 @@ void AOEngine::update()
if(allComplete)
{
mEnabled=gSavedPerAccountSettings.getBOOL("UseAO");
if(!mCurrentSet && !mSets.empty())
{
llwarns << "No default set defined, choosing the first in the list." << llendl;
mCurrentSet=mSets[0];
selectSet(mSets[0]);
}
mTimerCollection.enableInventoryTimer(FALSE);
mTimerCollection.enableSettingsTimer(TRUE);
// this should be a preferences option
mEnabled=TRUE;
selectSet(mCurrentSet);
llwarns << "sending update signal" << llendl;
mUpdatedSignal();
}
@ -884,13 +888,14 @@ void AOEngine::selectSet(AOSet* set)
{
BOOL wasEnabled=mEnabled;
if(wasEnabled)
{
enable(FALSE);
gAgent.stopCurrentAnimations();
}
gAgent.stopCurrentAnimations();
mLastOverriddenMotion=ANIM_AGENT_STAND;
mCurrentSet=set;
llwarns << "Selected AO set " << set->getName() << llendl;
if(wasEnabled)
enable(TRUE);

View File

@ -251,6 +251,17 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>UseAO</key>
<map>
<key>Comment</key>
<string>Use the viewer side Animation Overrider</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<!-- End of Firestorm settings -->
</map>
</llsd>

View File

@ -543,7 +543,9 @@ void LLBottomTray::toggleCameraControls()
// ## Zi: Animation Overrider
void LLBottomTray::toggleAO()
{
AOEngine::getInstance()->enable(getChild<LLButton>("ao_toggle_btn")->getToggleState());
BOOL yes=mAOToggleButton->getToggleState();
AOEngine::getInstance()->enable(yes);
gSavedPerAccountSettings.setBOOL("UseAO",yes);
}
// ## Zi: Animation Overrider
@ -615,10 +617,9 @@ BOOL LLBottomTray::postBuild()
getChild<LLUICtrl>("sidebar_appearance_btn")->setCommitCallback(boost::bind(&LLBottomTray::showSidebarPanel, this, "sidepanel_appearance"));
getChild<LLUICtrl>("sidebar_inv_btn")->setCommitCallback(boost::bind(&LLBottomTray::showSidebarPanel, this, "sidepanel_inventory"));
// ## Zi: Animation Overrider
LLButton* aoToggleButton=getChild<LLButton>("ao_toggle_btn");
aoToggleButton->setCommitCallback(boost::bind(&LLBottomTray::toggleAO,this));
// this needs to become a preferences option
aoToggleButton->setToggleState(TRUE);
mAOToggleButton=getChild<LLButton>("ao_toggle_btn");
mAOToggleButton->setCommitCallback(boost::bind(&LLBottomTray::toggleAO,this));
mAOToggleButton->setToggleState(gSavedPerAccountSettings.getBOOL("UseAO"));
// ## Zi: Animation Overrider
return TRUE;
}

View File

@ -471,6 +471,7 @@ protected:
LLButton* mCamButton;
LLButton* mMovementButton;
LLBottomTrayLite* mBottomTrayLite;
LLButton* mAOToggleButton; // ## Zi: Animation Overrider
bool mIsInLiteMode;
// Drag'n'Drop