Compare commits
8 Commits
sv-1.8.9.8
...
sv-1.8.9.8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7755f1ec52 | ||
|
|
c5f1ac808b | ||
|
|
1a8660909d | ||
|
|
e6826a4c7c | ||
|
|
801bb8a075 | ||
|
|
b2c965e22d | ||
|
|
be3cbc642b | ||
|
|
24331d3c90 |
@@ -103,11 +103,7 @@ void LLFloaterPostcard::init()
|
||||
if(!gAgent.getID().isNull())
|
||||
{
|
||||
// we're logged in, so we can get this info.
|
||||
gMessageSystem->newMessageFast(_PREHASH_UserInfoRequest);
|
||||
gMessageSystem->nextBlockFast(_PREHASH_AgentData);
|
||||
gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
|
||||
gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
|
||||
gAgent.sendReliableMessage();
|
||||
gAgent.sendAgentUserInfoRequest();
|
||||
}
|
||||
|
||||
sInstances.insert(this);
|
||||
@@ -233,7 +229,7 @@ void LLFloaterPostcard::onClose(bool app_quitting)
|
||||
destroy();
|
||||
}
|
||||
|
||||
class LLSendPostcardResponder : public LLAssetUploadResponder
|
||||
class LLSendPostcardResponder final : public LLAssetUploadResponder
|
||||
{
|
||||
private:
|
||||
int mSnapshotIndex;
|
||||
@@ -248,22 +244,22 @@ public:
|
||||
{
|
||||
}
|
||||
// *TODO define custom uploadFailed here so it's not such a generic message
|
||||
/*virtual*/ void uploadComplete(const LLSD& content)
|
||||
void uploadComplete(const LLSD& content) override final
|
||||
{
|
||||
// we don't care about what the server returns from this post, just clean up the UI
|
||||
LLFloaterSnapshot::savePostcardDone(true, mSnapshotIndex);
|
||||
}
|
||||
/*virtual*/ void uploadFailure(const LLSD& content)
|
||||
void uploadFailure(const LLSD& content) override final
|
||||
{
|
||||
LLAssetUploadResponder::uploadFailure(content);
|
||||
LLFloaterSnapshot::savePostcardDone(false, mSnapshotIndex);
|
||||
}
|
||||
/*virtual*/ void httpFailure(void)
|
||||
void httpFailure(void) override final
|
||||
{
|
||||
LLAssetUploadResponder::httpFailure();
|
||||
LLFloaterSnapshot::savePostcardDone(false, mSnapshotIndex);
|
||||
}
|
||||
/*virtual*/ char const* getName(void) const { return "LLSendPostcardResponder"; }
|
||||
char const* getName(void) const override final { return "LLSendPostcardResponder"; }
|
||||
};
|
||||
|
||||
// static
|
||||
@@ -273,7 +269,6 @@ void LLFloaterPostcard::onClickSend(void* data)
|
||||
{
|
||||
LLFloaterPostcard *self = (LLFloaterPostcard *)data;
|
||||
|
||||
std::string from(self->childGetValue("from_form").asString());
|
||||
std::string to(self->childGetValue("to_form").asString());
|
||||
|
||||
boost::regex emailFormat("[A-Za-z0-9.%+-_]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}(,[ \t]*[A-Za-z0-9.%+-_]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,})*");
|
||||
@@ -284,12 +279,6 @@ void LLFloaterPostcard::onClickSend(void* data)
|
||||
return;
|
||||
}
|
||||
|
||||
if (from.empty() || !boost::regex_match(from, emailFormat))
|
||||
{
|
||||
LLNotificationsUtil::add("PromptSelfEmail");
|
||||
return;
|
||||
}
|
||||
|
||||
std::string subject(self->childGetValue("subject_form").asString());
|
||||
if(subject.empty() || !self->mHasFirstMsgFocus)
|
||||
{
|
||||
@@ -349,10 +338,8 @@ void LLFloaterPostcard::uploadCallback(const LLUUID& asset_id, void *user_data,
|
||||
// static
|
||||
void LLFloaterPostcard::updateUserInfo(const std::string& email)
|
||||
{
|
||||
for (instance_list_t::iterator iter = sInstances.begin();
|
||||
iter != sInstances.end(); ++iter)
|
||||
for (auto& instance : sInstances)
|
||||
{
|
||||
LLFloaterPostcard *instance = *iter;
|
||||
const std::string& text = instance->childGetValue("from_form").asString();
|
||||
if (text.empty())
|
||||
{
|
||||
@@ -416,7 +403,6 @@ void LLFloaterPostcard::sendPostcard()
|
||||
// the capability already encodes: agent ID, region ID
|
||||
body["pos-global"] = mPosTakenGlobal.getValue();
|
||||
body["to"] = childGetValue("to_form").asString();
|
||||
body["from"] = childGetValue("from_form").asString();
|
||||
body["name"] = childGetValue("name_form").asString();
|
||||
body["subject"] = childGetValue("subject_form").asString();
|
||||
body["msg"] = childGetValue("msg_form").asString();
|
||||
|
||||
@@ -46,17 +46,17 @@ class LLLineEditor;
|
||||
class LLButton;
|
||||
class LLImageJPEG;
|
||||
|
||||
class LLFloaterPostcard
|
||||
class LLFloaterPostcard final
|
||||
: public LLFloater
|
||||
{
|
||||
public:
|
||||
LLFloaterPostcard(LLImageJPEG* jpeg, LLViewerTexture *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global, int index);
|
||||
/*virtual*/ ~LLFloaterPostcard();
|
||||
/*virtual*/ ~LLFloaterPostcard() override;
|
||||
|
||||
/*virtual*/ void init();
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void draw();
|
||||
/*virtual*/ void onClose(bool app_quitting);
|
||||
void init();
|
||||
/*virtual*/ BOOL postBuild() override;
|
||||
/*virtual*/ void draw() override;
|
||||
/*virtual*/ void onClose(bool app_quitting) override;
|
||||
|
||||
static LLFloaterPostcard* showFromSnapshot(LLImageJPEG *jpeg, LLViewerTexture *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global, int index);
|
||||
|
||||
|
||||
@@ -302,10 +302,10 @@ void LLFloaterWindLight::syncMenu()
|
||||
// blue horizon
|
||||
param_mgr->mBlueHorizon = cur_params.getVector(param_mgr->mBlueHorizon.mName, err);
|
||||
//setColorSwatch("WLBlueHorizon", param_mgr->mBlueHorizon, WL_BLUE_HORIZON_DENSITY_SCALE);
|
||||
childSetValue("WLBlueHorizonR", param_mgr->mBlueHorizon.r);
|
||||
childSetValue("WLBlueHorizonG", param_mgr->mBlueHorizon.g);
|
||||
childSetValue("WLBlueHorizonB", param_mgr->mBlueHorizon.b);
|
||||
childSetValue("WLBlueHorizonI", param_mgr->mBlueHorizon.i);
|
||||
childSetValue("WLBlueHorizonR", param_mgr->mBlueHorizon.r / WL_BLUE_HORIZON_DENSITY_SCALE);
|
||||
childSetValue("WLBlueHorizonG", param_mgr->mBlueHorizon.g / WL_BLUE_HORIZON_DENSITY_SCALE);
|
||||
childSetValue("WLBlueHorizonB", param_mgr->mBlueHorizon.b / WL_BLUE_HORIZON_DENSITY_SCALE);
|
||||
childSetValue("WLBlueHorizonI", param_mgr->mBlueHorizon.i / WL_BLUE_HORIZON_DENSITY_SCALE);
|
||||
|
||||
// haze density, horizon, mult, and altitude
|
||||
param_mgr->mHazeDensity = cur_params.getFloat(param_mgr->mHazeDensity.mName, err);
|
||||
@@ -320,20 +320,20 @@ void LLFloaterWindLight::syncMenu()
|
||||
// blue density
|
||||
param_mgr->mBlueDensity = cur_params.getVector(param_mgr->mBlueDensity.mName, err);
|
||||
//setColorSwatch("WLBlueDensity", param_mgr->mBlueDensity, WL_BLUE_HORIZON_DENSITY_SCALE);
|
||||
childSetValue("WLBlueDensityR", param_mgr->mBlueDensity.r);
|
||||
childSetValue("WLBlueDensityG", param_mgr->mBlueDensity.g);
|
||||
childSetValue("WLBlueDensityB", param_mgr->mBlueDensity.b);
|
||||
childSetValue("WLBlueDensityI", param_mgr->mBlueDensity.i);
|
||||
childSetValue("WLBlueDensityR", param_mgr->mBlueDensity.r / WL_BLUE_HORIZON_DENSITY_SCALE);
|
||||
childSetValue("WLBlueDensityG", param_mgr->mBlueDensity.g / WL_BLUE_HORIZON_DENSITY_SCALE);
|
||||
childSetValue("WLBlueDensityB", param_mgr->mBlueDensity.b / WL_BLUE_HORIZON_DENSITY_SCALE);
|
||||
childSetValue("WLBlueDensityI", param_mgr->mBlueDensity.i / WL_BLUE_HORIZON_DENSITY_SCALE);
|
||||
|
||||
// Lighting
|
||||
|
||||
// sunlight
|
||||
param_mgr->mSunlight = cur_params.getVector(param_mgr->mSunlight.mName, err);
|
||||
//setColorSwatch("WLSunlight", param_mgr->mSunlight, WL_SUN_AMBIENT_SLIDER_SCALE);
|
||||
childSetValue("WLSunlightR", param_mgr->mSunlight.r);
|
||||
childSetValue("WLSunlightG", param_mgr->mSunlight.g);
|
||||
childSetValue("WLSunlightB", param_mgr->mSunlight.b);
|
||||
childSetValue("WLSunlightI", param_mgr->mSunlight.i);
|
||||
childSetValue("WLSunlightR", param_mgr->mSunlight.r / WL_SUN_AMBIENT_SLIDER_SCALE);
|
||||
childSetValue("WLSunlightG", param_mgr->mSunlight.g / WL_SUN_AMBIENT_SLIDER_SCALE);
|
||||
childSetValue("WLSunlightB", param_mgr->mSunlight.b / WL_SUN_AMBIENT_SLIDER_SCALE);
|
||||
childSetValue("WLSunlightI", param_mgr->mSunlight.i / WL_SUN_AMBIENT_SLIDER_SCALE);
|
||||
|
||||
// glow
|
||||
param_mgr->mGlow = cur_params.getVector(param_mgr->mGlow.mName, err);
|
||||
@@ -343,10 +343,10 @@ void LLFloaterWindLight::syncMenu()
|
||||
// ambient
|
||||
param_mgr->mAmbient = cur_params.getVector(param_mgr->mAmbient.mName, err);
|
||||
//setColorSwatch("WLAmbient", param_mgr->mAmbient, WL_SUN_AMBIENT_SLIDER_SCALE);
|
||||
childSetValue("WLAmbientR", param_mgr->mAmbient.r);
|
||||
childSetValue("WLAmbientG", param_mgr->mAmbient.g);
|
||||
childSetValue("WLAmbientB", param_mgr->mAmbient.b);
|
||||
childSetValue("WLAmbientI", param_mgr->mAmbient.i);
|
||||
childSetValue("WLAmbientR", param_mgr->mAmbient.r / WL_SUN_AMBIENT_SLIDER_SCALE);
|
||||
childSetValue("WLAmbientG", param_mgr->mAmbient.g / WL_SUN_AMBIENT_SLIDER_SCALE);
|
||||
childSetValue("WLAmbientB", param_mgr->mAmbient.b / WL_SUN_AMBIENT_SLIDER_SCALE);
|
||||
childSetValue("WLAmbientI", param_mgr->mAmbient.i / WL_SUN_AMBIENT_SLIDER_SCALE);
|
||||
|
||||
childSetValue("WLSunAngle", param_mgr->mCurParams.getFloat("sun_angle",err) / F_TWO_PI);
|
||||
childSetValue("WLEastAngle", param_mgr->mCurParams.getFloat("east_angle",err) / F_TWO_PI);
|
||||
@@ -356,10 +356,10 @@ void LLFloaterWindLight::syncMenu()
|
||||
// Cloud Color
|
||||
param_mgr->mCloudColor = cur_params.getVector(param_mgr->mCloudColor.mName, err);
|
||||
//setColorSwatch("WLCloudColor", param_mgr->mCloudColor, WL_CLOUD_SLIDER_SCALE);
|
||||
childSetValue("WLCloudColorR", param_mgr->mCloudColor.r);
|
||||
childSetValue("WLCloudColorG", param_mgr->mCloudColor.g);
|
||||
childSetValue("WLCloudColorB", param_mgr->mCloudColor.b);
|
||||
childSetValue("WLCloudColorI", param_mgr->mCloudColor.i);
|
||||
childSetValue("WLCloudColorR", param_mgr->mCloudColor.r / WL_CLOUD_SLIDER_SCALE);
|
||||
childSetValue("WLCloudColorG", param_mgr->mCloudColor.g / WL_CLOUD_SLIDER_SCALE);
|
||||
childSetValue("WLCloudColorB", param_mgr->mCloudColor.b / WL_CLOUD_SLIDER_SCALE);
|
||||
childSetValue("WLCloudColorI", param_mgr->mCloudColor.i / WL_CLOUD_SLIDER_SCALE);
|
||||
|
||||
// Cloud
|
||||
param_mgr->mCloudMain = cur_params.getVector(param_mgr->mCloudMain.mName, err);
|
||||
@@ -513,18 +513,7 @@ void LLFloaterWindLight::onColorControlRMoved(LLUICtrl* ctrl, void* userdata)
|
||||
std::string name = color_ctrl->mSliderName;
|
||||
name.append("I");
|
||||
|
||||
if (color_ctrl->isSunOrAmbientColor)
|
||||
{
|
||||
childSetValue(name, color_ctrl->r / WL_SUN_AMBIENT_SLIDER_SCALE);
|
||||
}
|
||||
else if (color_ctrl->isBlueHorizonOrDensity)
|
||||
{
|
||||
childSetValue(name, color_ctrl->r / WL_BLUE_HORIZON_DENSITY_SCALE);
|
||||
}
|
||||
else
|
||||
{
|
||||
childSetValue(name, color_ctrl->r);
|
||||
}
|
||||
childSetValue(name, sldr_ctrl->getValueF32());
|
||||
}
|
||||
|
||||
color_ctrl->update(LLWLParamManager::getInstance()->mCurParams);
|
||||
|
||||
@@ -1651,6 +1651,7 @@ Note: OTHER_TYPING_TIMEOUT must be > ME_TYPING_TIMEOUT for proper operation of t
|
||||
{
|
||||
speaker_mgr->setSpeakerTyping(from_id, TRUE);
|
||||
}
|
||||
mOtherTyping = true; // addHistoryLine clears this flag. Set it again.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3889,6 +3889,9 @@ void build_context_menu_folder_options(LLInventoryModel* model, const LLUUID& mU
|
||||
const LLInventoryCategory* category = model->getCategory(mUUID);
|
||||
if(!category) return;
|
||||
|
||||
items.push_back(std::string("Open Folder In New Window"));
|
||||
items.push_back(std::string("Copy Folder UUID"));
|
||||
|
||||
const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH);
|
||||
if (trash_id == mUUID) return;
|
||||
if (model->isObjectDescendentOf(mUUID, trash_id)) return;
|
||||
@@ -3902,9 +3905,6 @@ void build_context_menu_folder_options(LLInventoryModel* model, const LLUUID& mU
|
||||
const LLUUID listings_folder = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false);
|
||||
if (listings_folder.notNull() && gInventory.isObjectDescendentOf(mUUID, listings_folder)) return;
|
||||
|
||||
items.push_back(std::string("Open Folder In New Window"));
|
||||
items.push_back(std::string("Copy Folder UUID"));
|
||||
|
||||
LLFolderType::EType type = category->getPreferredType();
|
||||
const bool is_system_folder = LLFolderType::lookupIsProtectedType(type);
|
||||
// calling card related functionality for folders.
|
||||
|
||||
@@ -752,7 +752,7 @@ void LLSpatialGroup::handleChildAddition(const OctreeNode* parent, OctreeNode* c
|
||||
{
|
||||
if (child->getListenerCount() == 0)
|
||||
{
|
||||
new LLSpatialGroup(child, getSpatialPartition());
|
||||
LLPointer<LLSpatialGroup> tmp = new LLSpatialGroup(child, getSpatialPartition());
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -817,7 +817,7 @@ LLSpatialPartition::LLSpatialPartition(U32 data_mask, BOOL render_by_group, U32
|
||||
mSlopRatio = 0.25f;
|
||||
mInfiniteFarClip = FALSE;
|
||||
|
||||
new LLSpatialGroup(mOctree, this);
|
||||
LLPointer<LLSpatialGroup> tmp = new LLSpatialGroup(mOctree, this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ public:
|
||||
BOOL mParticle;
|
||||
F32 mPartSize;
|
||||
F32 mVSize;
|
||||
LLSpatialGroup* mGroup;
|
||||
LLPointer<LLSpatialGroup> mGroup;
|
||||
LL_ALIGN_16(LLFace* mFace); //associated face
|
||||
F32 mDistance;
|
||||
U32 mDrawMode;
|
||||
@@ -478,7 +478,7 @@ class LLCullResult
|
||||
public:
|
||||
LLCullResult() {}
|
||||
|
||||
typedef std::vector<LLSpatialGroup*> sg_list_t;
|
||||
typedef std::vector<LLPointer<LLSpatialGroup> > sg_list_t;
|
||||
typedef std::vector<LLDrawable*> drawable_list_t;
|
||||
typedef std::vector<LLSpatialBridge*> bridge_list_t;
|
||||
typedef std::vector<LLDrawInfo*> drawinfo_list_t;
|
||||
|
||||
@@ -272,11 +272,10 @@ void LLViewerOctreeEntry::removeData(LLViewerOctreeEntryData* data)
|
||||
|
||||
mData[data->getDataType()] = NULL;
|
||||
|
||||
if(mGroup != NULL && !mData[LLDRAWABLE])
|
||||
if(!mGroup.isNull() && !mData[LLDRAWABLE])
|
||||
{
|
||||
LLViewerOctreeGroup* group = mGroup;
|
||||
mGroup->removeFromGroup(data);
|
||||
mGroup = NULL;
|
||||
group->removeFromGroup(data);
|
||||
|
||||
llassert(mBinIndex == -1);
|
||||
}
|
||||
@@ -390,7 +389,7 @@ void LLViewerOctreeEntryData::shift(const LLVector4a &shift_vector)
|
||||
|
||||
LLViewerOctreeGroup* LLViewerOctreeEntryData::getGroup()const
|
||||
{
|
||||
return mEntry.notNull() ? mEntry->mGroup : NULL;
|
||||
return mEntry.notNull() ? mEntry->mGroup : LLPointer<LLViewerOctreeGroup>();
|
||||
}
|
||||
|
||||
const LLVector4a& LLViewerOctreeEntryData::getPositionGroup() const
|
||||
|
||||
@@ -109,7 +109,7 @@ private:
|
||||
|
||||
private:
|
||||
LLViewerOctreeEntryData* mData[NUM_DATA_TYPE]; //do not use LLPointer here.
|
||||
LLViewerOctreeGroup* mGroup;
|
||||
LLPointer<LLViewerOctreeGroup> mGroup;
|
||||
|
||||
//aligned members
|
||||
LL_ALIGN_16(LLVector4a mExtents[2]);
|
||||
@@ -229,6 +229,7 @@ public:
|
||||
void handleChildRemoval(const OctreeNode* parent, const OctreeNode* child) final override;
|
||||
|
||||
OctreeNode* getOctreeNode() {return mOctreeNode;}
|
||||
const OctreeNode* getOctreeNode() const { return mOctreeNode; }
|
||||
LLViewerOctreeGroup* getParent();
|
||||
|
||||
const LLVector4a* getBounds() const {return mBounds;}
|
||||
|
||||
@@ -107,6 +107,19 @@ typedef std::map<std::string, std::string> CapabilityMap;
|
||||
|
||||
static void log_capabilities(const CapabilityMap &capmap);
|
||||
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
void newRegionEntry(LLViewerRegion& region)
|
||||
{
|
||||
LL_INFOS("LLViewerRegion") << "Entering region [" << region.getName() << "]" << LL_ENDL;
|
||||
gDebugInfo["CurrentRegion"] = region.getName();
|
||||
LLAppViewer::instance()->writeDebugInfo();
|
||||
}
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
class LLViewerRegionImpl {
|
||||
public:
|
||||
LLViewerRegionImpl(LLViewerRegion * region, LLHost const & host)
|
||||
@@ -117,6 +130,7 @@ public:
|
||||
mSeedCapMaxAttemptsBeforeLogin(MAX_SEED_CAP_ATTEMPTS_BEFORE_LOGIN),
|
||||
mSeedCapAttempts(0),
|
||||
mHttpResponderID(0),
|
||||
mLandp(NULL),
|
||||
// I'd prefer to set the LLCapabilityListener name to match the region
|
||||
// name -- it's disappointing that's not available at construction time.
|
||||
// We could instead store an LLCapabilityListener*, making
|
||||
@@ -2090,6 +2104,9 @@ void LLViewerRegion::setSeedCapability(const std::string& url)
|
||||
LL_DEBUGS("CrossingCaps") << "Received duplicate seed capability, posting to seed " <<
|
||||
url << LL_ENDL;
|
||||
|
||||
// record that we just entered a new region
|
||||
newRegionEntry(*this);
|
||||
|
||||
//Instead of just returning we build up a second set of seed caps and compare them
|
||||
//to the "original" seed cap received and determine why there is problem!
|
||||
LLSD capabilityNames = LLSD::emptyArray();
|
||||
@@ -2104,6 +2121,8 @@ void LLViewerRegion::setSeedCapability(const std::string& url)
|
||||
mImpl->mCapabilities.clear();
|
||||
setCapability("Seed", url);
|
||||
|
||||
// record that we just entered a new region
|
||||
newRegionEntry(*this);
|
||||
LLSD capabilityNames = LLSD::emptyArray();
|
||||
mImpl->buildCapabilityNames(capabilityNames);
|
||||
|
||||
|
||||
@@ -172,6 +172,7 @@ LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host)
|
||||
{
|
||||
LL_INFOS() << "Add region with handle: " << region_handle << " on host " << host << LL_ENDL;
|
||||
LLViewerRegion *regionp = getRegionFromHandle(region_handle);
|
||||
std::string seedUrl;
|
||||
if (regionp)
|
||||
{
|
||||
LLHost old_host = regionp->getHost();
|
||||
@@ -191,9 +192,12 @@ LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host)
|
||||
}
|
||||
if (!regionp->isAlive())
|
||||
{
|
||||
LL_WARNS() << "LLWorld::addRegion exists, but isn't alive" << LL_ENDL;
|
||||
LL_WARNS() << "LLWorld::addRegion exists, but isn't alive. Removing old region and creating new" << LL_ENDL;
|
||||
}
|
||||
|
||||
// Save capabilities seed URL
|
||||
seedUrl = regionp->getCapability("Seed");
|
||||
|
||||
// Kill the old host, and then we can continue on and add the new host. We have to kill even if the host
|
||||
// matches, because all the agent state for the new camera is completely different.
|
||||
removeRegion(old_host);
|
||||
@@ -229,6 +233,11 @@ LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host)
|
||||
LL_ERRS() << "Unable to create new region!" << LL_ENDL;
|
||||
}
|
||||
|
||||
if ( !seedUrl.empty() )
|
||||
{
|
||||
regionp->setCapability("Seed", seedUrl);
|
||||
}
|
||||
|
||||
//Classic clouds
|
||||
#if ENABLE_CLASSIC_CLOUDS
|
||||
regionp->mCloudLayer.create(regionp);
|
||||
@@ -1447,6 +1456,8 @@ public:
|
||||
<< sim << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
LL_DEBUGS("CrossingCaps") << "Calling setSeedCapability from LLEstablishAgentCommunication::post. Seed cap == "
|
||||
<< input["body"]["seed-capability"] << LL_ENDL;
|
||||
regionp->setSeedCapability(input["body"]["seed-capability"]);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -3459,8 +3459,9 @@ void forAllDrawables(LLCullResult::sg_iterator begin,
|
||||
{
|
||||
for (LLCullResult::sg_iterator i = begin; i != end; ++i)
|
||||
{
|
||||
OctreeGuard guard((*i)->getOctreeNode());
|
||||
for (LLSpatialGroup::element_iter j = (*i)->getDataBegin(); j != (*i)->getDataEnd(); ++j)
|
||||
LLSpatialGroup* group = (*i).get();
|
||||
OctreeGuard guard(group->getOctreeNode());
|
||||
for (LLSpatialGroup::element_iter j = group->getDataBegin(); j != group->getDataEnd(); ++j)
|
||||
{
|
||||
func((LLDrawable*)(*j)->getDrawable());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user