summaryrefslogtreecommitdiff
path: root/indra/newview/llagentpicksinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llagentpicksinfo.cpp')
-rw-r--r--indra/newview/llagentpicksinfo.cpp132
1 files changed, 69 insertions, 63 deletions
diff --git a/indra/newview/llagentpicksinfo.cpp b/indra/newview/llagentpicksinfo.cpp
index 799060eeab..265e4060ff 100644
--- a/indra/newview/llagentpicksinfo.cpp
+++ b/indra/newview/llagentpicksinfo.cpp
@@ -1,25 +1,25 @@
-/**
+/**
* @file llagentpicksinfo.cpp
* @brief LLAgentPicksInfo class implementation
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, 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$
*/
@@ -28,6 +28,7 @@
#include "llagentpicksinfo.h"
#include "llagent.h"
+#include "llagentbenefits.h"
#include "llavatarpropertiesprocessor.h"
const S32 MAX_AVATAR_PICKS = 10;
@@ -36,47 +37,47 @@ const S32 MAX_AVATAR_PICKS = 10;
class LLAgentPicksInfo::LLAgentPicksObserver : public LLAvatarPropertiesObserver
{
public:
- LLAgentPicksObserver()
- {
- LLAvatarPropertiesProcessor::getInstance()->addObserver(gAgent.getID(), this);
- }
-
- ~LLAgentPicksObserver()
- {
- if (LLAvatarPropertiesProcessor::instanceExists())
- LLAvatarPropertiesProcessor::getInstance()->removeObserver(gAgent.getID(), this);
- }
-
- void sendAgentPicksRequest()
- {
- LLAvatarPropertiesProcessor::getInstance()->sendAvatarPicksRequest(gAgent.getID());
- }
-
- typedef boost::function<void(LLAvatarPicks*)> server_respond_callback_t;
-
- void setServerRespondCallback(const server_respond_callback_t& cb)
- {
- mServerRespondCallback = cb;
- }
-
- virtual void processProperties(void* data, EAvatarProcessorType type)
- {
- if(APT_PICKS == type)
- {
- LLAvatarPicks* picks = static_cast<LLAvatarPicks*>(data);
- if(picks && gAgent.getID() == picks->target_id)
- {
- if(mServerRespondCallback)
- {
- mServerRespondCallback(picks);
- }
- }
- }
- }
+ LLAgentPicksObserver()
+ {
+ LLAvatarPropertiesProcessor::getInstance()->addObserver(gAgent.getID(), this);
+ }
+
+ ~LLAgentPicksObserver()
+ {
+ if (LLAvatarPropertiesProcessor::instanceExists())
+ LLAvatarPropertiesProcessor::getInstance()->removeObserver(gAgent.getID(), this);
+ }
+
+ void sendAgentPicksRequest()
+ {
+ LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(gAgent.getID());
+ }
+
+ typedef boost::function<void(LLAvatarData*)> server_respond_callback_t;
+
+ void setServerRespondCallback(const server_respond_callback_t& cb)
+ {
+ mServerRespondCallback = cb;
+ }
+
+ virtual void processProperties(void* data, EAvatarProcessorType type)
+ {
+ if(APT_PROPERTIES == type)
+ {
+ LLAvatarData* picks = static_cast<LLAvatarData*>(data);
+ if(picks && gAgent.getID() == picks->avatar_id)
+ {
+ if(mServerRespondCallback)
+ {
+ mServerRespondCallback(picks);
+ }
+ }
+ }
+ }
private:
- server_respond_callback_t mServerRespondCallback;
+ server_respond_callback_t mServerRespondCallback;
};
//////////////////////////////////////////////////////////////////////////
@@ -85,43 +86,48 @@ private:
LLAgentPicksInfo::LLAgentPicksInfo()
: mAgentPicksObserver(NULL)
- , mMaxNumberOfPicks(MAX_AVATAR_PICKS)
- // Disable Pick creation until we get number of Picks from server - in case
+ // Disable Pick creation until we get number of Picks from server - in case
// avatar has maximum number of Picks.
- , mNumberOfPicks(mMaxNumberOfPicks)
+ , mNumberOfPicks(S32_MAX)
{
}
LLAgentPicksInfo::~LLAgentPicksInfo()
{
- delete mAgentPicksObserver;
+ delete mAgentPicksObserver;
}
void LLAgentPicksInfo::requestNumberOfPicks()
{
- if(!mAgentPicksObserver)
- {
- mAgentPicksObserver = new LLAgentPicksObserver();
+ if(!mAgentPicksObserver)
+ {
+ mAgentPicksObserver = new LLAgentPicksObserver();
- mAgentPicksObserver->setServerRespondCallback(boost::bind(
- &LLAgentPicksInfo::onServerRespond, this, _1));
- }
+ mAgentPicksObserver->setServerRespondCallback(boost::bind(
+ &LLAgentPicksInfo::onServerRespond, this, _1));
+ }
- mAgentPicksObserver->sendAgentPicksRequest();
+ mAgentPicksObserver->sendAgentPicksRequest();
+}
+
+// static
+S32 LLAgentPicksInfo::getMaxNumberOfPicks()
+{
+ return LLAgentBenefitsMgr::current().getPicksLimit();
}
-bool LLAgentPicksInfo::isPickLimitReached()
+bool LLAgentPicksInfo::isPickLimitReached() const
{
- return getNumberOfPicks() >= getMaxNumberOfPicks();
+ return getNumberOfPicks() >= getMaxNumberOfPicks();
}
-void LLAgentPicksInfo::onServerRespond(LLAvatarPicks* picks)
+void LLAgentPicksInfo::onServerRespond(LLAvatarData* picks)
{
- if(!picks)
- {
- LL_ERRS() << "Unexpected value" << LL_ENDL;
- return;
- }
+ if(!picks)
+ {
+ LL_ERRS() << "Unexpected value" << LL_ENDL;
+ return;
+ }
- setNumberOfPicks(picks->picks_list.size());
+ setNumberOfPicks(static_cast<S32>(picks->picks_list.size()));
}