SL-10499 - benefits. Removed no-longer-needed lleconomy files and classes. Group-related costs and limits via benefits.
parent
7df0a4ddd0
commit
65550520ed
|
|
@ -19,7 +19,6 @@ include_directories(
|
|||
|
||||
set(llinventory_SOURCE_FILES
|
||||
llcategory.cpp
|
||||
lleconomy.cpp
|
||||
llfoldertype.cpp
|
||||
llinventory.cpp
|
||||
llinventorydefines.cpp
|
||||
|
|
@ -37,7 +36,6 @@ set(llinventory_HEADER_FILES
|
|||
CMakeLists.txt
|
||||
|
||||
llcategory.h
|
||||
lleconomy.h
|
||||
llfoldertype.h
|
||||
llinventory.h
|
||||
llinventorydefines.h
|
||||
|
|
|
|||
|
|
@ -1,287 +0,0 @@
|
|||
/**
|
||||
* @file lleconomy.cpp
|
||||
*
|
||||
* $LicenseInfo:firstyear=2002&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$
|
||||
*/
|
||||
|
||||
#include "linden_common.h"
|
||||
|
||||
#include "lleconomy.h"
|
||||
#include "llerror.h"
|
||||
#include "message.h"
|
||||
#include "v3math.h"
|
||||
|
||||
|
||||
LLBaseEconomy::LLBaseEconomy()
|
||||
: mObjectCount( -1 ),
|
||||
mObjectCapacity( -1 ),
|
||||
mPriceObjectClaim( -1 ),
|
||||
mPricePublicObjectDecay( -1 ),
|
||||
mPricePublicObjectDelete( -1 ),
|
||||
mPriceEnergyUnit( -1 ),
|
||||
mPriceUpload( -1 ),
|
||||
mPriceRentLight( -1 ),
|
||||
mTeleportMinPrice( -1 ),
|
||||
mTeleportPriceExponent( -1 ),
|
||||
mPriceGroupCreate( -1 )
|
||||
{ }
|
||||
|
||||
LLBaseEconomy::~LLBaseEconomy()
|
||||
{ }
|
||||
|
||||
void LLBaseEconomy::addObserver(LLEconomyObserver* observer)
|
||||
{
|
||||
mObservers.push_back(observer);
|
||||
}
|
||||
|
||||
void LLBaseEconomy::removeObserver(LLEconomyObserver* observer)
|
||||
{
|
||||
std::list<LLEconomyObserver*>::iterator it =
|
||||
std::find(mObservers.begin(), mObservers.end(), observer);
|
||||
if (it != mObservers.end())
|
||||
{
|
||||
mObservers.erase(it);
|
||||
}
|
||||
}
|
||||
|
||||
void LLBaseEconomy::notifyObservers()
|
||||
{
|
||||
for (std::list<LLEconomyObserver*>::iterator it = mObservers.begin();
|
||||
it != mObservers.end();
|
||||
++it)
|
||||
{
|
||||
(*it)->onEconomyDataChange();
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void LLBaseEconomy::processEconomyData(LLMessageSystem *msg, LLBaseEconomy* econ_data)
|
||||
{
|
||||
S32 i;
|
||||
F32 f;
|
||||
|
||||
msg->getS32Fast(_PREHASH_Info, _PREHASH_ObjectCapacity, i);
|
||||
econ_data->setObjectCapacity(i);
|
||||
msg->getS32Fast(_PREHASH_Info, _PREHASH_ObjectCount, i);
|
||||
econ_data->setObjectCount(i);
|
||||
msg->getS32Fast(_PREHASH_Info, _PREHASH_PriceEnergyUnit, i);
|
||||
econ_data->setPriceEnergyUnit(i);
|
||||
msg->getS32Fast(_PREHASH_Info, _PREHASH_PriceObjectClaim, i);
|
||||
econ_data->setPriceObjectClaim(i);
|
||||
msg->getS32Fast(_PREHASH_Info, _PREHASH_PricePublicObjectDecay, i);
|
||||
econ_data->setPricePublicObjectDecay(i);
|
||||
msg->getS32Fast(_PREHASH_Info, _PREHASH_PricePublicObjectDelete, i);
|
||||
econ_data->setPricePublicObjectDelete(i);
|
||||
msg->getS32Fast(_PREHASH_Info, _PREHASH_PriceUpload, i);
|
||||
econ_data->setPriceUpload(i);
|
||||
#if LL_LINUX
|
||||
// We can optionally fake the received upload price for testing.
|
||||
// Note that the server is within its rights to not obey our fake
|
||||
// price. :)
|
||||
const char* fakeprice_str = getenv("LL_FAKE_UPLOAD_PRICE");
|
||||
if (fakeprice_str)
|
||||
{
|
||||
S32 fakeprice = (S32)atoi(fakeprice_str);
|
||||
LL_WARNS() << "LL_FAKE_UPLOAD_PRICE: Faking upload price as L$" << fakeprice << LL_ENDL;
|
||||
econ_data->setPriceUpload(fakeprice);
|
||||
}
|
||||
#endif
|
||||
msg->getS32Fast(_PREHASH_Info, _PREHASH_PriceRentLight, i);
|
||||
econ_data->setPriceRentLight(i);
|
||||
msg->getS32Fast(_PREHASH_Info, _PREHASH_TeleportMinPrice, i);
|
||||
econ_data->setTeleportMinPrice(i);
|
||||
msg->getF32Fast(_PREHASH_Info, _PREHASH_TeleportPriceExponent, f);
|
||||
econ_data->setTeleportPriceExponent(f);
|
||||
msg->getS32Fast(_PREHASH_Info, _PREHASH_PriceGroupCreate, i);
|
||||
econ_data->setPriceGroupCreate(i);
|
||||
|
||||
econ_data->notifyObservers();
|
||||
}
|
||||
|
||||
S32 LLBaseEconomy::calculateTeleportCost(F32 distance) const
|
||||
{
|
||||
S32 min_cost = getTeleportMinPrice();
|
||||
F32 exponent = getTeleportPriceExponent();
|
||||
F32 divisor = 100.f * pow(3.f, exponent);
|
||||
S32 cost = (U32)(distance * pow(log10(distance), exponent) / divisor);
|
||||
if (cost < 0)
|
||||
{
|
||||
cost = 0;
|
||||
}
|
||||
else if (cost < min_cost)
|
||||
{
|
||||
cost = min_cost;
|
||||
}
|
||||
|
||||
return cost;
|
||||
}
|
||||
|
||||
S32 LLBaseEconomy::calculateLightRent(const LLVector3& object_size) const
|
||||
{
|
||||
F32 intensity_mod = llmax(object_size.magVec(), 1.f);
|
||||
return (S32)(intensity_mod * getPriceRentLight());
|
||||
}
|
||||
|
||||
void LLBaseEconomy::print()
|
||||
{
|
||||
LL_INFOS() << "Global Economy Settings: " << LL_ENDL;
|
||||
LL_INFOS() << "Object Capacity: " << mObjectCapacity << LL_ENDL;
|
||||
LL_INFOS() << "Object Count: " << mObjectCount << LL_ENDL;
|
||||
LL_INFOS() << "Claim Price Per Object: " << mPriceObjectClaim << LL_ENDL;
|
||||
LL_INFOS() << "Claim Price Per Public Object: " << mPricePublicObjectDecay << LL_ENDL;
|
||||
LL_INFOS() << "Delete Price Per Public Object: " << mPricePublicObjectDelete << LL_ENDL;
|
||||
LL_INFOS() << "Release Price Per Public Object: " << getPricePublicObjectRelease() << LL_ENDL;
|
||||
LL_INFOS() << "Price Per Energy Unit: " << mPriceEnergyUnit << LL_ENDL;
|
||||
LL_INFOS() << "Price Per Upload: " << mPriceUpload << LL_ENDL;
|
||||
LL_INFOS() << "Light Base Price: " << mPriceRentLight << LL_ENDL;
|
||||
LL_INFOS() << "Teleport Min Price: " << mTeleportMinPrice << LL_ENDL;
|
||||
LL_INFOS() << "Teleport Price Exponent: " << mTeleportPriceExponent << LL_ENDL;
|
||||
LL_INFOS() << "Price for group creation: " << mPriceGroupCreate << LL_ENDL;
|
||||
}
|
||||
|
||||
LLRegionEconomy::LLRegionEconomy()
|
||||
: mPriceObjectRent( -1.f ),
|
||||
mPriceObjectScaleFactor( -1.f ),
|
||||
mEnergyEfficiency( -1.f ),
|
||||
mBasePriceParcelClaimDefault(-1),
|
||||
mBasePriceParcelClaimActual(-1),
|
||||
mPriceParcelClaimFactor(-1.f),
|
||||
mBasePriceParcelRent(-1),
|
||||
mAreaOwned(-1.f),
|
||||
mAreaTotal(-1.f)
|
||||
{ }
|
||||
|
||||
LLRegionEconomy::~LLRegionEconomy()
|
||||
{ }
|
||||
|
||||
BOOL LLRegionEconomy::hasData() const
|
||||
{
|
||||
return (mBasePriceParcelRent != -1);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLRegionEconomy::processEconomyData(LLMessageSystem *msg, void** user_data)
|
||||
{
|
||||
S32 i;
|
||||
F32 f;
|
||||
|
||||
LLRegionEconomy *this_ptr = (LLRegionEconomy*)user_data;
|
||||
|
||||
LLBaseEconomy::processEconomyData(msg, this_ptr);
|
||||
|
||||
msg->getS32Fast(_PREHASH_Info, _PREHASH_PriceParcelClaim, i);
|
||||
this_ptr->setBasePriceParcelClaimDefault(i);
|
||||
msg->getF32(_PREHASH_Info, _PREHASH_PriceParcelClaimFactor, f);
|
||||
this_ptr->setPriceParcelClaimFactor(f);
|
||||
msg->getF32Fast(_PREHASH_Info, _PREHASH_EnergyEfficiency, f);
|
||||
this_ptr->setEnergyEfficiency(f);
|
||||
msg->getF32Fast(_PREHASH_Info, _PREHASH_PriceObjectRent, f);
|
||||
this_ptr->setPriceObjectRent(f);
|
||||
msg->getF32Fast(_PREHASH_Info, _PREHASH_PriceObjectScaleFactor, f);
|
||||
this_ptr->setPriceObjectScaleFactor(f);
|
||||
msg->getS32Fast(_PREHASH_Info, _PREHASH_PriceParcelRent, i);
|
||||
this_ptr->setBasePriceParcelRent(i);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLRegionEconomy::processEconomyDataRequest(LLMessageSystem *msg, void **user_data)
|
||||
{
|
||||
LLRegionEconomy *this_ptr = (LLRegionEconomy*)user_data;
|
||||
if (!this_ptr->hasData())
|
||||
{
|
||||
LL_WARNS() << "Dropping EconomyDataRequest, because EconomyData message "
|
||||
<< "has not been processed" << LL_ENDL;
|
||||
}
|
||||
|
||||
msg->newMessageFast(_PREHASH_EconomyData);
|
||||
msg->nextBlockFast(_PREHASH_Info);
|
||||
msg->addS32Fast(_PREHASH_ObjectCapacity, this_ptr->getObjectCapacity());
|
||||
msg->addS32Fast(_PREHASH_ObjectCount, this_ptr->getObjectCount());
|
||||
msg->addS32Fast(_PREHASH_PriceEnergyUnit, this_ptr->getPriceEnergyUnit());
|
||||
msg->addS32Fast(_PREHASH_PriceObjectClaim, this_ptr->getPriceObjectClaim());
|
||||
msg->addS32Fast(_PREHASH_PricePublicObjectDecay, this_ptr->getPricePublicObjectDecay());
|
||||
msg->addS32Fast(_PREHASH_PricePublicObjectDelete, this_ptr->getPricePublicObjectDelete());
|
||||
msg->addS32Fast(_PREHASH_PriceParcelClaim, this_ptr->mBasePriceParcelClaimActual);
|
||||
msg->addF32Fast(_PREHASH_PriceParcelClaimFactor, this_ptr->mPriceParcelClaimFactor);
|
||||
msg->addS32Fast(_PREHASH_PriceUpload, this_ptr->getPriceUpload());
|
||||
msg->addS32Fast(_PREHASH_PriceRentLight, this_ptr->getPriceRentLight());
|
||||
msg->addS32Fast(_PREHASH_TeleportMinPrice, this_ptr->getTeleportMinPrice());
|
||||
msg->addF32Fast(_PREHASH_TeleportPriceExponent, this_ptr->getTeleportPriceExponent());
|
||||
|
||||
msg->addF32Fast(_PREHASH_EnergyEfficiency, this_ptr->getEnergyEfficiency());
|
||||
msg->addF32Fast(_PREHASH_PriceObjectRent, this_ptr->getPriceObjectRent());
|
||||
msg->addF32Fast(_PREHASH_PriceObjectScaleFactor, this_ptr->getPriceObjectScaleFactor());
|
||||
msg->addS32Fast(_PREHASH_PriceParcelRent, this_ptr->getPriceParcelRent());
|
||||
msg->addS32Fast(_PREHASH_PriceGroupCreate, this_ptr->getPriceGroupCreate());
|
||||
|
||||
msg->sendReliable(msg->getSender());
|
||||
}
|
||||
|
||||
|
||||
S32 LLRegionEconomy::getPriceParcelClaim() const
|
||||
{
|
||||
//return (S32)((F32)mBasePriceParcelClaim * (mAreaTotal / (mAreaTotal - mAreaOwned)));
|
||||
return (S32)((F32)mBasePriceParcelClaimActual * mPriceParcelClaimFactor);
|
||||
}
|
||||
|
||||
S32 LLRegionEconomy::getPriceParcelRent() const
|
||||
{
|
||||
return mBasePriceParcelRent;
|
||||
}
|
||||
|
||||
|
||||
void LLRegionEconomy::print()
|
||||
{
|
||||
this->LLBaseEconomy::print();
|
||||
|
||||
LL_INFOS() << "Region Economy Settings: " << LL_ENDL;
|
||||
LL_INFOS() << "Land (square meters): " << mAreaTotal << LL_ENDL;
|
||||
LL_INFOS() << "Owned Land (square meters): " << mAreaOwned << LL_ENDL;
|
||||
LL_INFOS() << "Daily Object Rent: " << mPriceObjectRent << LL_ENDL;
|
||||
LL_INFOS() << "Daily Land Rent (per meter): " << getPriceParcelRent() << LL_ENDL;
|
||||
LL_INFOS() << "Energey Efficiency: " << mEnergyEfficiency << LL_ENDL;
|
||||
}
|
||||
|
||||
|
||||
void LLRegionEconomy::setBasePriceParcelClaimDefault(S32 val)
|
||||
{
|
||||
mBasePriceParcelClaimDefault = val;
|
||||
if(mBasePriceParcelClaimActual == -1)
|
||||
{
|
||||
mBasePriceParcelClaimActual = val;
|
||||
}
|
||||
}
|
||||
|
||||
void LLRegionEconomy::setBasePriceParcelClaimActual(S32 val)
|
||||
{
|
||||
mBasePriceParcelClaimActual = val;
|
||||
}
|
||||
|
||||
void LLRegionEconomy::setPriceParcelClaimFactor(F32 val)
|
||||
{
|
||||
mPriceParcelClaimFactor = val;
|
||||
}
|
||||
|
||||
void LLRegionEconomy::setBasePriceParcelRent(S32 val)
|
||||
{
|
||||
mBasePriceParcelRent = val;
|
||||
}
|
||||
|
|
@ -1,157 +0,0 @@
|
|||
/**
|
||||
* @file lleconomy.h
|
||||
*
|
||||
* $LicenseInfo:firstyear=2002&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$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLECONOMY_H
|
||||
#define LL_LLECONOMY_H
|
||||
|
||||
#include "llsingleton.h"
|
||||
#include <list>
|
||||
|
||||
class LLMessageSystem;
|
||||
class LLVector3;
|
||||
|
||||
/**
|
||||
* Register an observer to be notified of economy data updates coming from server.
|
||||
*/
|
||||
class LLEconomyObserver
|
||||
{
|
||||
public:
|
||||
virtual ~LLEconomyObserver() {}
|
||||
virtual void onEconomyDataChange() = 0;
|
||||
};
|
||||
|
||||
class LLBaseEconomy
|
||||
{
|
||||
public:
|
||||
LLBaseEconomy();
|
||||
virtual ~LLBaseEconomy();
|
||||
|
||||
virtual void print();
|
||||
|
||||
void addObserver(LLEconomyObserver* observer);
|
||||
void removeObserver(LLEconomyObserver* observer);
|
||||
void notifyObservers();
|
||||
|
||||
static void processEconomyData(LLMessageSystem *msg, LLBaseEconomy* econ_data);
|
||||
|
||||
S32 calculateTeleportCost(F32 distance) const;
|
||||
S32 calculateLightRent(const LLVector3& object_size) const;
|
||||
|
||||
S32 getObjectCount() const { return mObjectCount; }
|
||||
S32 getObjectCapacity() const { return mObjectCapacity; }
|
||||
S32 getPriceObjectClaim() const { return mPriceObjectClaim; }
|
||||
S32 getPricePublicObjectDecay() const { return mPricePublicObjectDecay; }
|
||||
S32 getPricePublicObjectDelete() const { return mPricePublicObjectDelete; }
|
||||
S32 getPricePublicObjectRelease() const { return mPriceObjectClaim - mPricePublicObjectDelete; }
|
||||
S32 getPriceEnergyUnit() const { return mPriceEnergyUnit; }
|
||||
S32 getPriceUpload() const { return mPriceUpload; }
|
||||
S32 getPriceRentLight() const { return mPriceRentLight; }
|
||||
S32 getTeleportMinPrice() const { return mTeleportMinPrice; }
|
||||
F32 getTeleportPriceExponent() const { return mTeleportPriceExponent; }
|
||||
S32 getPriceGroupCreate() const { return mPriceGroupCreate; }
|
||||
|
||||
|
||||
void setObjectCount(S32 val) { mObjectCount = val; }
|
||||
void setObjectCapacity(S32 val) { mObjectCapacity = val; }
|
||||
void setPriceObjectClaim(S32 val) { mPriceObjectClaim = val; }
|
||||
void setPricePublicObjectDecay(S32 val) { mPricePublicObjectDecay = val; }
|
||||
void setPricePublicObjectDelete(S32 val) { mPricePublicObjectDelete = val; }
|
||||
void setPriceEnergyUnit(S32 val) { mPriceEnergyUnit = val; }
|
||||
void setPriceUpload(S32 val) { mPriceUpload = val; }
|
||||
void setPriceRentLight(S32 val) { mPriceRentLight = val; }
|
||||
void setTeleportMinPrice(S32 val) { mTeleportMinPrice = val; }
|
||||
void setTeleportPriceExponent(F32 val) { mTeleportPriceExponent = val; }
|
||||
void setPriceGroupCreate(S32 val) { mPriceGroupCreate = val; }
|
||||
|
||||
private:
|
||||
S32 mObjectCount;
|
||||
S32 mObjectCapacity;
|
||||
S32 mPriceObjectClaim; // per primitive
|
||||
S32 mPricePublicObjectDecay; // per primitive
|
||||
S32 mPricePublicObjectDelete; // per primitive
|
||||
S32 mPriceEnergyUnit;
|
||||
S32 mPriceUpload;
|
||||
S32 mPriceRentLight;
|
||||
S32 mTeleportMinPrice;
|
||||
F32 mTeleportPriceExponent;
|
||||
S32 mPriceGroupCreate;
|
||||
|
||||
std::list<LLEconomyObserver*> mObservers;
|
||||
};
|
||||
|
||||
class LLGlobalEconomy: public LLSingleton<LLGlobalEconomy>, public LLBaseEconomy
|
||||
{
|
||||
LLSINGLETON_EMPTY_CTOR(LLGlobalEconomy);
|
||||
};
|
||||
|
||||
class LLRegionEconomy : public LLBaseEconomy
|
||||
{
|
||||
public:
|
||||
LLRegionEconomy();
|
||||
~LLRegionEconomy();
|
||||
|
||||
static void processEconomyData(LLMessageSystem *msg, void **user_data);
|
||||
static void processEconomyDataRequest(LLMessageSystem *msg, void **user_data);
|
||||
|
||||
void print();
|
||||
|
||||
BOOL hasData() const;
|
||||
F32 getPriceObjectRent() const { return mPriceObjectRent; }
|
||||
F32 getPriceObjectScaleFactor() const {return mPriceObjectScaleFactor;}
|
||||
F32 getEnergyEfficiency() const { return mEnergyEfficiency; }
|
||||
S32 getPriceParcelClaim() const;
|
||||
S32 getPriceParcelRent() const;
|
||||
F32 getAreaOwned() const { return mAreaOwned; }
|
||||
F32 getAreaTotal() const { return mAreaTotal; }
|
||||
S32 getBasePriceParcelClaimActual() const { return mBasePriceParcelClaimActual; }
|
||||
|
||||
void setPriceObjectRent(F32 val) { mPriceObjectRent = val; }
|
||||
void setPriceObjectScaleFactor(F32 val) { mPriceObjectScaleFactor = val; }
|
||||
void setEnergyEfficiency(F32 val) { mEnergyEfficiency = val; }
|
||||
|
||||
void setBasePriceParcelClaimDefault(S32 val);
|
||||
void setBasePriceParcelClaimActual(S32 val);
|
||||
void setPriceParcelClaimFactor(F32 val);
|
||||
void setBasePriceParcelRent(S32 val);
|
||||
|
||||
void setAreaOwned(F32 val) { mAreaOwned = val; }
|
||||
void setAreaTotal(F32 val) { mAreaTotal = val; }
|
||||
|
||||
private:
|
||||
F32 mPriceObjectRent;
|
||||
F32 mPriceObjectScaleFactor;
|
||||
F32 mEnergyEfficiency;
|
||||
|
||||
S32 mBasePriceParcelClaimDefault;
|
||||
S32 mBasePriceParcelClaimActual;
|
||||
F32 mPriceParcelClaimFactor;
|
||||
S32 mBasePriceParcelRent;
|
||||
|
||||
F32 mAreaOwned;
|
||||
F32 mAreaTotal;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -32,6 +32,7 @@
|
|||
#include "pipeline.h"
|
||||
|
||||
#include "llagentaccess.h"
|
||||
#include "llagentbenefits.h"
|
||||
#include "llagentcamera.h"
|
||||
#include "llagentlistener.h"
|
||||
#include "llagentwearables.h"
|
||||
|
|
@ -2984,7 +2985,7 @@ BOOL LLAgent::setUserGroupFlags(const LLUUID& group_id, BOOL accept_notices, BOO
|
|||
|
||||
BOOL LLAgent::canJoinGroups() const
|
||||
{
|
||||
return (S32)mGroups.size() < gMaxAgentGroups;
|
||||
return (S32)mGroups.size() < LLAgentBenefits::instance().getGroupMembershipLimit();
|
||||
}
|
||||
|
||||
LLQuaternion LLAgent::getHeadRotation()
|
||||
|
|
|
|||
|
|
@ -73,6 +73,10 @@ bool LLAgentBenefits::init(const LLSD& benefits_sd)
|
|||
{
|
||||
return false;
|
||||
}
|
||||
if (!get_required_S32(benefits_sd, "create_group_cost", m_create_group_cost))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!get_required_S32(benefits_sd, "group_membership_limit", m_group_membership_limit))
|
||||
{
|
||||
return false;
|
||||
|
|
@ -86,42 +90,42 @@ bool LLAgentBenefits::init(const LLSD& benefits_sd)
|
|||
return false;
|
||||
}
|
||||
|
||||
// FIXME PREMIUM - either use this field or get rid of it
|
||||
m_initalized = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
S32 LLAgentBenefits::getAnimatedObjectLimit() const
|
||||
{
|
||||
//llassert(m_initalized);
|
||||
return m_animated_object_limit;
|
||||
}
|
||||
|
||||
S32 LLAgentBenefits::getAnimationUploadCost() const
|
||||
{
|
||||
//llassert(m_initalized);
|
||||
return m_animation_upload_cost;
|
||||
}
|
||||
|
||||
S32 LLAgentBenefits::getAttachmentLimit() const
|
||||
{
|
||||
//llassert(m_initalized);
|
||||
return m_attachment_limit;
|
||||
}
|
||||
|
||||
S32 LLAgentBenefits::getCreateGroupCost() const
|
||||
{
|
||||
return m_create_group_cost;
|
||||
}
|
||||
|
||||
S32 LLAgentBenefits::getGroupMembershipLimit() const
|
||||
{
|
||||
//llassert(m_initalized);
|
||||
return m_group_membership_limit;
|
||||
}
|
||||
|
||||
S32 LLAgentBenefits::getSoundUploadCost() const
|
||||
{
|
||||
//llassert(m_initalized);
|
||||
return m_sound_upload_cost;
|
||||
}
|
||||
|
||||
S32 LLAgentBenefits::getTextureUploadCost() const
|
||||
{
|
||||
//llassert(m_initalized);
|
||||
return m_texture_upload_cost;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ public:
|
|||
S32 getAnimatedObjectLimit() const;
|
||||
S32 getAnimationUploadCost() const;
|
||||
S32 getAttachmentLimit() const;
|
||||
S32 getCreateGroupCost() const;
|
||||
S32 getGroupMembershipLimit() const;
|
||||
S32 getSoundUploadCost() const;
|
||||
S32 getTextureUploadCost() const;
|
||||
|
|
@ -49,6 +50,7 @@ private:
|
|||
S32 m_animated_object_limit;
|
||||
S32 m_animation_upload_cost;
|
||||
S32 m_attachment_limit;
|
||||
S32 m_create_group_cost;
|
||||
S32 m_group_membership_limit;
|
||||
S32 m_sound_upload_cost;
|
||||
S32 m_texture_upload_cost;
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
#include "llbvhloader.h"
|
||||
#include "lldatapacker.h"
|
||||
#include "lldir.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llnotificationsutil.h"
|
||||
#include "llvfile.h"
|
||||
#include "llapr.h"
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
#include "roles_constants.h"
|
||||
|
||||
#include "llagent.h"
|
||||
#include "llagentbenefits.h"
|
||||
#include "llbutton.h"
|
||||
#include "llgroupactions.h"
|
||||
#include "llscrolllistctrl.h"
|
||||
|
|
@ -172,7 +173,7 @@ void LLPanelGroups::reset()
|
|||
group_list->operateOnAll(LLCtrlListInterface::OP_DELETE);
|
||||
}
|
||||
getChild<LLUICtrl>("groupcount")->setTextArg("[COUNT]", llformat("%d",gAgent.mGroups.size()));
|
||||
getChild<LLUICtrl>("groupcount")->setTextArg("[MAX]", llformat("%d",gMaxAgentGroups));
|
||||
getChild<LLUICtrl>("groupcount")->setTextArg("[MAX]", llformat("%d",LLAgentBenefits::instance().getGroupMembershipLimit()));
|
||||
|
||||
init_group_list(getChild<LLScrollListCtrl>("group list"), gAgent.getGroupID());
|
||||
enableButtons();
|
||||
|
|
@ -183,7 +184,7 @@ BOOL LLPanelGroups::postBuild()
|
|||
childSetCommitCallback("group list", onGroupList, this);
|
||||
|
||||
getChild<LLUICtrl>("groupcount")->setTextArg("[COUNT]", llformat("%d",gAgent.mGroups.size()));
|
||||
getChild<LLUICtrl>("groupcount")->setTextArg("[MAX]", llformat("%d",gMaxAgentGroups));
|
||||
getChild<LLUICtrl>("groupcount")->setTextArg("[MAX]", llformat("%d",LLAgentBenefits::instance().getGroupMembershipLimit()));
|
||||
|
||||
LLScrollListCtrl *list = getChild<LLScrollListCtrl>("group list");
|
||||
if (list)
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@
|
|||
#include "lldrawable.h"
|
||||
#include "llrender.h"
|
||||
#include "llface.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llfocusmgr.h"
|
||||
#include "llfloaterperms.h"
|
||||
#include "lliconctrl.h"
|
||||
|
|
|
|||
|
|
@ -46,12 +46,12 @@
|
|||
#include "llnotificationsutil.h"
|
||||
#include "lluictrlfactory.h"
|
||||
#include "llstring.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llpermissions.h"
|
||||
|
||||
// linden includes
|
||||
#include "llassetstorage.h"
|
||||
#include "llinventorytype.h"
|
||||
#include "llagentbenefits.h"
|
||||
|
||||
const S32 PREVIEW_LINE_HEIGHT = 19;
|
||||
const S32 PREVIEW_BORDER_WIDTH = 2;
|
||||
|
|
@ -123,7 +123,8 @@ BOOL LLFloaterNameDesc::postBuild()
|
|||
// Cancel button
|
||||
getChild<LLUICtrl>("cancel_btn")->setCommitCallback(boost::bind(&LLFloaterNameDesc::onBtnCancel, this));
|
||||
|
||||
getChild<LLUICtrl>("ok_btn")->setLabelArg("[AMOUNT]", llformat("%d", LLGlobalEconomy::getInstance()->getPriceUpload() ));
|
||||
// FIXME PREMIUM - depends - what are we uploading here?
|
||||
getChild<LLUICtrl>("ok_btn")->setLabelArg("[AMOUNT]", llformat("%d", LLAgentBenefits::instance().getTextureUploadCost()));
|
||||
|
||||
setDefaultBtn("ok_btn");
|
||||
|
||||
|
|
@ -163,7 +164,7 @@ void LLFloaterNameDesc::onBtnOK( )
|
|||
|
||||
// FIXME PREMIUM - upload cost. Need to know which asset type this is, use agent benefits.
|
||||
LLAssetStorage::LLStoreAssetCallback callback = NULL;
|
||||
S32 expected_upload_cost = LLGlobalEconomy::getInstance()->getPriceUpload(); // kinda hack - assumes that unsubclassed LLFloaterNameDesc is only used for uploading chargeable assets, which it is right now (it's only used unsubclassed for the sound upload dialog, and THAT should be a subclass).
|
||||
S32 expected_upload_cost = LLAgentBenefits::instance().getTextureUploadCost(); // kinda hack - assumes that unsubclassed LLFloaterNameDesc is only used for uploading chargeable assets, which it is right now (it's only used unsubclassed for the sound upload dialog, and THAT should be a subclass).
|
||||
|
||||
if (can_afford_transaction(expected_upload_cost))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@
|
|||
#include "roles_constants.h"
|
||||
#include "lltransactiontypes.h"
|
||||
#include "llstatusbar.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llpanelgroup.h"
|
||||
#include "llgroupactions.h"
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@
|
|||
#include "lldeadmantimer.h"
|
||||
#include "llfloatermodelpreview.h"
|
||||
#include "llfloaterperms.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llimagej2c.h"
|
||||
#include "llhost.h"
|
||||
#include "llmath.h"
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@
|
|||
#include "llaccordionctrltab.h"
|
||||
#include "llappearancemgr.h"
|
||||
#include "llagentbenefits.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llerror.h"
|
||||
#include "llfilepicker.h"
|
||||
#include "llfloaterperms.h"
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@
|
|||
#include "llpanelcontents.h"
|
||||
|
||||
// linden library includes
|
||||
#include "lleconomy.h"
|
||||
#include "llerror.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfontgl.h"
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "llavatarnamecache.h"
|
||||
#include "llagent.h"
|
||||
#include "llagentbenefits.h"
|
||||
#include "llsdparam.h"
|
||||
#include "lluictrlfactory.h"
|
||||
#include "roles_constants.h"
|
||||
|
|
@ -339,7 +340,9 @@ bool LLPanelGroupGeneral::apply(std::string& mesg)
|
|||
return false;
|
||||
}
|
||||
|
||||
LLNotificationsUtil::add("CreateGroupCost", LLSD(), LLSD(), boost::bind(&LLPanelGroupGeneral::createGroupCallback, this, _1, _2));
|
||||
LLSD args;
|
||||
args["COST"] = LLAgentBenefits::instance().getCreateGroupCost();
|
||||
LLNotificationsUtil::add("CreateGroupCost", args, LLSD(), boost::bind(&LLPanelGroupGeneral::createGroupCallback, this, _1, _2));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@
|
|||
#include "llcheckboxctrl.h"
|
||||
#include "llcombobox.h"
|
||||
#include "lldndbutton.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llfilepicker.h"
|
||||
#include "llinventorybridge.h"
|
||||
#include "llinventoryfunctions.h"
|
||||
|
|
@ -1510,11 +1509,6 @@ bool LLPanelMainInventory::handleDragAndDropToTrash(BOOL drop, EDragAndDropType
|
|||
|
||||
void LLPanelMainInventory::setUploadCostIfNeeded()
|
||||
{
|
||||
// *NOTE dzaporozhan
|
||||
// Upload cost is set in process_economy_data() (llviewermessage.cpp). But since we
|
||||
// have two instances of Inventory panel at the moment(and two instances of context menu),
|
||||
// call to gMenuHolder->childSetLabelArg() sets upload cost only for one of the instances.
|
||||
|
||||
LLMenuGL* menu = (LLMenuGL*)mMenuAddHandle.get();
|
||||
if(mNeedUploadCost && menu)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@
|
|||
#include "llpanelobject.h"
|
||||
|
||||
// linden library includes
|
||||
#include "lleconomy.h"
|
||||
#include "llerror.h"
|
||||
#include "llfontgl.h"
|
||||
#include "llpermissionsflags.h"
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@
|
|||
#include "llaccordionctrl.h"
|
||||
#include "llaccordionctrltab.h"
|
||||
#include "llagent.h"
|
||||
#include "llagentbenefits.h"
|
||||
#include "llavataractions.h"
|
||||
#include "llavatarlist.h"
|
||||
#include "llavatarlistitem.h"
|
||||
|
|
@ -85,11 +86,10 @@ static const std::string RECENT_TAB_NAME = "recent_panel";
|
|||
static const std::string BLOCKED_TAB_NAME = "blocked_panel"; // blocked avatars
|
||||
static const std::string COLLAPSED_BY_USER = "collapsed_by_user";
|
||||
|
||||
// FIXME PREMIUM - these should come from package info, once viewer is receiving it all.
|
||||
const S32 BASE_MAX_AGENT_GROUPS = 42;
|
||||
const S32 PREMIUM_MAX_AGENT_GROUPS = 60;
|
||||
|
||||
extern S32 gMaxAgentGroups;
|
||||
|
||||
/** Comparator for comparing avatar items by last interaction date */
|
||||
class LLAvatarItemRecentComparator : public LLAvatarItemComparator
|
||||
{
|
||||
|
|
@ -629,7 +629,7 @@ BOOL LLPanelPeople::postBuild()
|
|||
getChild<LLFilterEditor>("groups_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
|
||||
getChild<LLFilterEditor>("recent_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
|
||||
|
||||
if(gMaxAgentGroups < max_premium)
|
||||
if(LLAgentBenefits::instance().getGroupMembershipLimit() < max_premium)
|
||||
{
|
||||
getChild<LLTextBox>("groupcount")->setText(getString("GroupCountWithInfo"));
|
||||
getChild<LLTextBox>("groupcount")->setURLClickedCallback(boost::bind(&LLPanelPeople::onGroupLimitInfo, this));
|
||||
|
|
@ -877,9 +877,10 @@ void LLPanelPeople::updateButtons()
|
|||
groups_panel->getChildView("minus_btn")->setEnabled(item_selected && selected_id.notNull()); // a real group selected
|
||||
|
||||
U32 groups_count = gAgent.mGroups.size();
|
||||
U32 groups_ramaining = gMaxAgentGroups > groups_count ? gMaxAgentGroups - groups_count : 0;
|
||||
S32 max_groups = LLAgentBenefits::instance().getGroupMembershipLimit();
|
||||
U32 groups_remaining = max_groups > groups_count ? max_groups - groups_count : 0;
|
||||
groups_panel->getChild<LLUICtrl>("groupcount")->setTextArg("[COUNT]", llformat("%d", groups_count));
|
||||
groups_panel->getChild<LLUICtrl>("groupcount")->setTextArg("[REMAINING]", llformat("%d", groups_ramaining));
|
||||
groups_panel->getChild<LLUICtrl>("groupcount")->setTextArg("[REMAINING]", llformat("%d", groups_remaining));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1092,6 +1093,7 @@ void LLPanelPeople::onFilterEdit(const std::string& search_string)
|
|||
}
|
||||
}
|
||||
|
||||
// FIXME PREMIUM this should be coming from LLAgentBenefits info about the various packages.
|
||||
void LLPanelPeople::onGroupLimitInfo()
|
||||
{
|
||||
LLSD args;
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "llcombobox.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llsidetraypanelcontainer.h"
|
||||
#include "llspinctrl.h"
|
||||
|
||||
|
|
@ -38,6 +37,8 @@
|
|||
#include "llstatusbar.h" // can_afford_transaction()
|
||||
#include "llnotificationsutil.h"
|
||||
|
||||
#include "llagentbenefits.h"
|
||||
|
||||
/**
|
||||
* The panel provides UI for saving snapshot as an inventory texture.
|
||||
*/
|
||||
|
|
@ -135,7 +136,7 @@ BOOL LLPanelSnapshotInventory::postBuild()
|
|||
// virtual
|
||||
void LLPanelSnapshotInventory::onOpen(const LLSD& key)
|
||||
{
|
||||
getChild<LLUICtrl>("hint_lbl")->setTextArg("[UPLOAD_COST]", llformat("%d", LLGlobalEconomy::getInstance()->getPriceUpload()));
|
||||
getChild<LLUICtrl>("hint_lbl")->setTextArg("[UPLOAD_COST]", llformat("%d", LLAgentBenefits::instance().getTextureUploadCost()));
|
||||
LLPanelSnapshot::onOpen(key);
|
||||
}
|
||||
|
||||
|
|
@ -155,7 +156,7 @@ void LLPanelSnapshotInventory::onResolutionCommit(LLUICtrl* ctrl)
|
|||
|
||||
void LLPanelSnapshotInventoryBase::onSend()
|
||||
{
|
||||
S32 expected_upload_cost = LLGlobalEconomy::getInstance()->getPriceUpload();
|
||||
S32 expected_upload_cost = LLAgentBenefits::instance().getTextureUploadCost();
|
||||
if (can_afford_transaction(expected_upload_cost))
|
||||
{
|
||||
if (mSnapshotFloater)
|
||||
|
|
@ -191,7 +192,7 @@ BOOL LLPanelOutfitSnapshotInventory::postBuild()
|
|||
// virtual
|
||||
void LLPanelOutfitSnapshotInventory::onOpen(const LLSD& key)
|
||||
{
|
||||
getChild<LLUICtrl>("hint_lbl")->setTextArg("[UPLOAD_COST]", llformat("%d", LLGlobalEconomy::getInstance()->getPriceUpload()));
|
||||
getChild<LLUICtrl>("hint_lbl")->setTextArg("[UPLOAD_COST]", llformat("%d", LLAgentBenefits::instance().getTextureUploadCost()));
|
||||
LLPanelSnapshot::onOpen(key);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "lleconomy.h"
|
||||
#include "llpanel.h"
|
||||
#include "llsidetraypanelcontainer.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
|
||||
// linden library includes
|
||||
#include "llclickaction.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llerror.h"
|
||||
#include "llfontgl.h"
|
||||
#include "llflexibleobject.h"
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@
|
|||
#include "llcachename.h"
|
||||
#include "llavatarnamecache.h"
|
||||
#include "lldbstrings.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llgl.h"
|
||||
#include "llmediaentry.h"
|
||||
#include "llrender.h"
|
||||
|
|
|
|||
|
|
@ -28,10 +28,10 @@
|
|||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "llagent.h"
|
||||
#include "llagentbenefits.h"
|
||||
#include "llagentcamera.h"
|
||||
#include "llagentui.h"
|
||||
#include "llcombobox.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llfloaterperms.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfloaterflickr.h"
|
||||
|
|
@ -1039,7 +1039,7 @@ void LLSnapshotLivePreview::saveTexture(BOOL outfit_snapshot, std::string name)
|
|||
LLAgentUI::buildLocationString(pos_string, LLAgentUI::LOCATION_FORMAT_FULL);
|
||||
std::string who_took_it;
|
||||
LLAgentUI::buildFullname(who_took_it);
|
||||
S32 expected_upload_cost = LLGlobalEconomy::getInstance()->getPriceUpload();
|
||||
S32 expected_upload_cost = LLAgentBenefits::instance().getTextureUploadCost();
|
||||
std::string res_name = outfit_snapshot ? name : "Snapshot : " + pos_string;
|
||||
std::string res_desc = outfit_snapshot ? "" : "Taken by " + who_took_it + " at " + pos_string;
|
||||
LLFolderType::EType folder_type = outfit_snapshot ? LLFolderType::FT_NONE : LLFolderType::FT_SNAPSHOT_CATEGORY;
|
||||
|
|
|
|||
|
|
@ -209,7 +209,6 @@
|
|||
// exported globals
|
||||
//
|
||||
bool gAgentMovementCompleted = false;
|
||||
S32 gMaxAgentGroups;
|
||||
|
||||
const std::string SCREEN_HOME_FILENAME = "screen_home%s.png";
|
||||
const std::string SCREEN_LAST_FILENAME = "screen_last%s.png";
|
||||
|
|
@ -246,7 +245,6 @@ static LLVector3 gAgentStartLookAt(1.0f, 0.f, 0.f);
|
|||
static std::string gAgentStartLocation = "safe";
|
||||
static bool mLoginStatePastUI = false;
|
||||
|
||||
const S32 DEFAULT_MAX_AGENT_GROUPS = 42;
|
||||
const F32 STATE_AGENT_WAIT_TIMEOUT = 240; //seconds
|
||||
|
||||
boost::scoped_ptr<LLEventPump> LLStartUp::sStateWatcher(new LLEventStream("StartupState"));
|
||||
|
|
@ -1574,8 +1572,6 @@ bool idle_startup()
|
|||
send_complete_agent_movement(regionp->getHost());
|
||||
gAssetStorage->setUpstream(regionp->getHost());
|
||||
gCacheName->setUpstream(regionp->getHost());
|
||||
msg->newMessageFast(_PREHASH_EconomyDataRequest);
|
||||
gAgent.sendReliableMessage();
|
||||
}
|
||||
display_startup();
|
||||
|
||||
|
|
@ -3606,10 +3602,6 @@ bool process_login_success_response()
|
|||
LLViewerMedia::getInstance()->openIDSetup(openid_url, openid_token);
|
||||
}
|
||||
|
||||
gMaxAgentGroups = LLAgentBenefits::instance().getGroupMembershipLimit();
|
||||
LL_INFOS("LLStartup") << "gMaxAgentGroups set from agent benefits: "
|
||||
<< gMaxAgentGroups << LL_ENDL;
|
||||
|
||||
bool success = false;
|
||||
// JC: gesture loading done below, when we have an asset system
|
||||
// in place. Don't delete/clear gUserCredentials until then.
|
||||
|
|
|
|||
|
|
@ -80,7 +80,6 @@ typedef enum {
|
|||
|
||||
// exported symbols
|
||||
extern bool gAgentMovementCompleted;
|
||||
extern S32 gMaxAgentGroups;
|
||||
extern LLPointer<LLViewerTexture> gStartTexture;
|
||||
|
||||
class LLStartUp
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@
|
|||
#include "lluploaddialog.h"
|
||||
#include "llpreviewscript.h"
|
||||
#include "llnotificationsutil.h"
|
||||
#include "lleconomy.h"
|
||||
#include "llagent.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfloatersnapshot.h"
|
||||
|
|
|
|||
|
|
@ -128,7 +128,6 @@
|
|||
#include "lluilistener.h"
|
||||
#include "llappearancemgr.h"
|
||||
#include "lltrans.h"
|
||||
#include "lleconomy.h"
|
||||
#include "lltoolgrab.h"
|
||||
#include "llwindow.h"
|
||||
#include "llpathfindingmanager.h"
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
// project includes
|
||||
#include "llagent.h"
|
||||
#include "llagentbenefits.h"
|
||||
#include "llagentcamera.h"
|
||||
#include "llfilepicker.h"
|
||||
#include "llfloaterreg.h"
|
||||
|
|
@ -67,7 +68,6 @@
|
|||
#include "llviewerassetupload.h"
|
||||
|
||||
// linden libraries
|
||||
#include "lleconomy.h"
|
||||
#include "llnotificationsutil.h"
|
||||
#include "llsdserialize.h"
|
||||
#include "llsdutil.h"
|
||||
|
|
@ -85,8 +85,6 @@ class LLFileEnableUpload : public view_listener_t
|
|||
bool handleEvent(const LLSD& userdata)
|
||||
{
|
||||
return true;
|
||||
// bool new_value = gStatusBar && LLGlobalEconomy::getInstance() && (gStatusBar->getBalance() >= LLGlobalEconomy::getInstance()->getPriceUpload());
|
||||
// return new_value;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -417,7 +415,8 @@ const void upload_bulk(const std::vector<std::string>& filenames, LLFilePicker::
|
|||
//
|
||||
// Also fix single upload to charge first, then refund
|
||||
|
||||
S32 expected_upload_cost = LLGlobalEconomy::getInstance()->getPriceUpload();
|
||||
// FIXME PREMIUM - upload_cost should be per-file, depends on asset type
|
||||
S32 expected_upload_cost = LLAgentBenefits::instance().getTextureUploadCost();
|
||||
for (std::vector<std::string>::const_iterator in_iter = filenames.begin(); in_iter != filenames.end(); ++in_iter)
|
||||
{
|
||||
std::string filename = (*in_iter);
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#include "llaudioengine.h"
|
||||
#include "llavataractions.h"
|
||||
#include "llavatarnamecache.h" // IDEVO HACK
|
||||
#include "lleconomy.h"
|
||||
#include "lleventtimer.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfolderview.h"
|
||||
|
|
@ -51,6 +50,7 @@
|
|||
#include "mean_collision_data.h"
|
||||
|
||||
#include "llagent.h"
|
||||
#include "llagentbenefits.h"
|
||||
#include "llagentcamera.h"
|
||||
#include "llcallingcard.h"
|
||||
#include "llbuycurrencyhtml.h"
|
||||
|
|
@ -903,7 +903,7 @@ bool join_group_response(const LLSD& notification, const LLSD& response)
|
|||
if(option == 0 && !group_id.isNull())
|
||||
{
|
||||
// check for promotion or demotion.
|
||||
S32 max_groups = gMaxAgentGroups;
|
||||
S32 max_groups = LLAgentBenefits::instance().getGroupMembershipLimit();
|
||||
if(gAgent.isInGroup(group_id)) ++max_groups;
|
||||
|
||||
if(gAgent.mGroups.size() < max_groups)
|
||||
|
|
@ -5435,16 +5435,7 @@ void process_frozen_message(LLMessageSystem *msgsystem, void **user_data)
|
|||
// do some extra stuff once we get our economy data
|
||||
void process_economy_data(LLMessageSystem *msg, void** /*user_data*/)
|
||||
{
|
||||
LLGlobalEconomy::processEconomyData(msg, LLGlobalEconomy::getInstance());
|
||||
|
||||
S32 upload_cost = LLGlobalEconomy::getInstance()->getPriceUpload();
|
||||
|
||||
LL_INFOS_ONCE("Messaging") << "EconomyData message arrived; upload cost is L$" << upload_cost << LL_ENDL;
|
||||
|
||||
gMenuHolder->getChild<LLUICtrl>("Upload Image")->setLabelArg("[COST]", llformat("%d", upload_cost));
|
||||
gMenuHolder->getChild<LLUICtrl>("Upload Sound")->setLabelArg("[COST]", llformat("%d", upload_cost));
|
||||
gMenuHolder->getChild<LLUICtrl>("Upload Animation")->setLabelArg("[COST]", llformat("%d", upload_cost));
|
||||
gMenuHolder->getChild<LLUICtrl>("Bulk Upload")->setLabelArg("[COST]", llformat("%d", upload_cost));
|
||||
LL_DEBUGS("Benefits") << "Received economy data, not currently used" << LL_ENDL;
|
||||
}
|
||||
|
||||
void notify_cautioned_script_question(const LLSD& notification, const LLSD& response, S32 orig_questions, BOOL granted)
|
||||
|
|
|
|||
|
|
@ -920,7 +920,7 @@ You do not have enough L$ to join this group.
|
|||
icon="alertmodal.tga"
|
||||
name="CreateGroupCost"
|
||||
type="alertmodal">
|
||||
Creating this group will cost L$100.
|
||||
Creating this group will cost L$[COST].
|
||||
Groups need more than one member, or they are deleted forever.
|
||||
Please invite members within 48 hours.
|
||||
<tag>group</tag>
|
||||
|
|
@ -929,7 +929,7 @@ Please invite members within 48 hours.
|
|||
canceltext="Cancel"
|
||||
name="okcancelbuttons"
|
||||
notext="Cancel"
|
||||
yestext="Create group for L$100"/>
|
||||
yestext="Create group for L$[COST]"/>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
|
|
|
|||
Loading…
Reference in New Issue