Added avatar visibility and sound settings to 'About Land' floater.

This commit is contained in:
Shyotl
2011-10-13 03:22:50 -05:00
parent 956868327c
commit 7bbbfd9a9b
10 changed files with 2918 additions and 2734 deletions

View File

@@ -233,6 +233,11 @@ void LLParcel::init(const LLUUID &owner_id,
setPreviousOwnerID(LLUUID::null);
setPreviouslyGroupOwned(FALSE);
setSeeAVs(TRUE);
setAllowGroupAVSounds(TRUE);
setAllowAnyAVSounds(TRUE);
setHaveNewParcelLimitData(FALSE);
}
void LLParcel::overrideOwner(const LLUUID& owner_id, BOOL is_group_owned)
@@ -709,7 +714,9 @@ void LLParcel::packMessage(LLSD& msg)
msg["user_location"] = ll_sd_from_vector3(mUserLocation);
msg["user_look_at"] = ll_sd_from_vector3(mUserLookAt);
msg["landing_type"] = (U8)mLandingType;
msg["see_avs"] = (LLSD::Boolean) getSeeAVs();
msg["group_av_sounds"] = (LLSD::Boolean) getAllowGroupAVSounds();
msg["any_av_sounds"] = (LLSD::Boolean) getAllowAnyAVSounds();
}
@@ -728,6 +735,24 @@ void LLParcel::unpackMessage(LLMessageSystem* msg)
msg->getStringFast( _PREHASH_ParcelData,_PREHASH_MediaURL, buffer );
setMediaURL(buffer);
BOOL see_avs = TRUE; // All default to true for legacy server behavior
BOOL any_av_sounds = TRUE;
BOOL group_av_sounds = TRUE;
bool have_new_parcel_limit_data = (msg->getSizeFast(_PREHASH_ParcelData, _PREHASH_SeeAVs) > 0); // New version of server should send all 3 of these values
have_new_parcel_limit_data &= (msg->getSizeFast(_PREHASH_ParcelData, _PREHASH_AnyAVSounds) > 0);
have_new_parcel_limit_data &= (msg->getSizeFast(_PREHASH_ParcelData, _PREHASH_GroupAVSounds) > 0);
if (have_new_parcel_limit_data)
{
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_SeeAVs, see_avs);
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_AnyAVSounds, any_av_sounds);
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_GroupAVSounds, group_av_sounds);
}
setSeeAVs((bool) see_avs);
setAllowAnyAVSounds((bool) any_av_sounds);
setAllowGroupAVSounds((bool) group_av_sounds);
setHaveNewParcelLimitData(have_new_parcel_limit_data);
// non-optimized version
msg->getU8 ( "ParcelData", "MediaAutoScale", mMediaAutoScale );

View File

@@ -81,7 +81,7 @@ const U8 PARCEL_AUCTION = 0x05;
// unused 0x06
// unused 0x07
// flag, unused 0x08
// flag, unused 0x10
const U8 PARCEL_HIDDENAVS = 0x10; // avatars not visible outside of parcel. Used for 'see avs' feature, but must be off for compatibility
const U8 PARCEL_SOUND_LOCAL = 0x20;
const U8 PARCEL_WEST_LINE = 0x40; // flag, property line on west edge
const U8 PARCEL_SOUTH_LINE = 0x80; // flag, property line on south edge
@@ -277,6 +277,8 @@ public:
void setUserLocation(const LLVector3& pos) { mUserLocation = pos; }
void setUserLookAt(const LLVector3& rot) { mUserLookAt = rot; }
void setLandingType(const ELandingType type) { mLandingType = type; }
void setSeeAVs(BOOL see_avs) { mSeeAVs = see_avs; }
void setHaveNewParcelLimitData(bool have_new_parcel_data) { mHaveNewParcelLimitData = have_new_parcel_data; } // Remove this once hidden AV feature is fully available grid-wide
void setAuctionID(U32 auction_id) { mAuctionID = auction_id;}
@@ -303,6 +305,8 @@ public:
void setDenyAnonymous(BOOL b) { setParcelFlag(PF_DENY_ANONYMOUS, b); }
void setDenyAgeUnverified(BOOL b) { setParcelFlag(PF_DENY_AGEUNVERIFIED, b); }
void setRestrictPushObject(BOOL b) { setParcelFlag(PF_RESTRICT_PUSHOBJECT, b); }
void setAllowGroupAVSounds(BOOL b) { mAllowGroupAVSounds = b; }
void setAllowAnyAVSounds(BOOL b) { mAllowAnyAVSounds = b; }
void setDrawDistance(F32 dist) { mDrawDistance = dist; }
void setSalePrice(S32 price) { mSalePrice = price; }
@@ -379,6 +383,8 @@ public:
const LLVector3& getUserLocation() const { return mUserLocation; }
const LLVector3& getUserLookAt() const { return mUserLookAt; }
ELandingType getLandingType() const { return mLandingType; }
BOOL getSeeAVs() const { return mSeeAVs; }
BOOL getHaveNewParcelLimitData() const { return mHaveNewParcelLimitData; }
// User-specified snapshot
const LLUUID& getSnapshotID() const { return mSnapshotID; }
@@ -508,6 +514,9 @@ public:
BOOL getRegionDenyAgeUnverifiedOverride() const
{ return mRegionDenyAgeUnverifiedOverride; }
BOOL getAllowGroupAVSounds() const { return mAllowGroupAVSounds; }
BOOL getAllowAnyAVSounds() const { return mAllowAnyAVSounds; }
F32 getDrawDistance() const { return mDrawDistance; }
S32 getSalePrice() const { return mSalePrice; }
time_t getClaimDate() const { return mClaimDate; }
@@ -615,6 +624,8 @@ protected:
LLVector3 mUserLocation;
LLVector3 mUserLookAt;
ELandingType mLandingType;
BOOL mSeeAVs; // Avatars on this parcel are visible from outside it
BOOL mHaveNewParcelLimitData; // Remove once hidden AV feature is grid-wide
LLTimer mSaleTimerExpires;
LLTimer mMediaResetTimer;
@@ -670,7 +681,10 @@ protected:
BOOL mRegionPushOverride;
BOOL mRegionDenyAnonymousOverride;
BOOL mRegionDenyAgeUnverifiedOverride;
BOOL mAllowGroupAVSounds;
BOOL mAllowAnyAVSounds;
public:
// HACK, make private
S32 mLocalID;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -97,6 +97,7 @@ static std::string OWNER_INSIM = "4";
// constants used in callbacks below - syntactic sugar.
static const BOOL BUY_GROUP_LAND = TRUE;
static const BOOL BUY_PERSONAL_LAND = FALSE;
LLPointer<LLParcelSelection> LLPanelLandGeneral::sSelectionForBuyPass = NULL;
// Statics
LLParcelSelectionObserver* LLFloaterLand::sObserver = NULL;
@@ -156,6 +157,10 @@ void send_parcel_select_objects(S32 parcel_local_id, U32 return_type,
msg->sendReliable(region->getHost());
}
LLParcel* LLFloaterLand::getCurrentSelectedParcel()
{
return mParcel->getParcel();
};
//static
LLPanelLandObjects* LLFloaterLand::getCurrentPanelLandObjects()
@@ -177,6 +182,13 @@ void LLFloaterLand::refreshAll()
void LLFloaterLand::onOpen()
{
// moved from triggering show instance in llviwermenu.cpp
if (LLViewerParcelMgr::getInstance()->selectionEmpty())
{
LLViewerParcelMgr::getInstance()->selectParcelAt(gAgent.getPositionGlobal());
}
// Done automatically when the selected parcel's properties arrive
// (and hence we have the local id).
// LLViewerParcelMgr::getInstance()->sendParcelAccessListRequest(AL_ACCESS | AL_BAN | AL_RENTER);
@@ -192,10 +204,6 @@ void LLFloaterLand::onOpen()
// virtual
void LLFloaterLand::onClose(bool app_quitting)
{
LLViewerParcelMgr::getInstance()->removeObserver( sObserver );
delete sObserver;
sObserver = NULL;
// Might have been showing owned objects
LLSelectMgr::getInstance()->unhighlightAll();
@@ -244,6 +252,9 @@ BOOL LLFloaterLand::postBuild()
// virtual
LLFloaterLand::~LLFloaterLand()
{
LLViewerParcelMgr::getInstance()->removeObserver( sObserver );
delete sObserver;
sObserver = NULL;
}
// public
@@ -255,6 +266,7 @@ void LLFloaterLand::refresh()
mPanelAudio->refresh();
mPanelMedia->refresh();
mPanelAccess->refresh();
mPanelCovenant->refresh();
}
@@ -421,7 +433,7 @@ BOOL LLPanelLandGeneral::postBuild()
mBtnReclaimLand->setClickedCallback(onClickReclaim, NULL);
mBtnStartAuction = getChild<LLButton>("Linden Sale...");
mBtnStartAuction->setClickedCallback(onClickStartAuction, NULL);
mBtnStartAuction->setClickedCallback(onClickStartAuction, this);
return TRUE;
}
@@ -678,7 +690,8 @@ void LLPanelLandGeneral::refresh()
cost_per_sqm = (F32)parcel->getSalePrice() / (F32)area;
}
mSaleInfoForSale1->setTextArg("[PRICE]", llformat("%d", parcel->getSalePrice()));
S32 price = parcel->getSalePrice();
mSaleInfoForSale1->setTextArg("[PRICE]", LLResMgr::getInstance()->getMonetaryString(price));
mSaleInfoForSale1->setTextArg("[PRICE_PER_SQM]", llformat("%.1f", cost_per_sqm));
if (can_be_sold)
{
@@ -732,6 +745,7 @@ void LLPanelLandGeneral::refreshNames()
if (!parcel)
{
mTextOwner->setText(LLStringUtil::null);
mTextGroup->setText(LLStringUtil::null);
return;
}
@@ -759,16 +773,19 @@ void LLPanelLandGeneral::refreshNames()
}
mTextGroup->setText(group);
const LLUUID& auth_buyer_id = parcel->getAuthorizedBuyerID();
if(auth_buyer_id.notNull())
if (parcel->getForSale())
{
std::string name;
gCacheName->getFullName(auth_buyer_id, name);
mSaleInfoForSale2->setTextArg("[BUYER]", name);
}
else
{
mSaleInfoForSale2->setTextArg("[BUYER]", getString("anyone"));
const LLUUID& auth_buyer_id = parcel->getAuthorizedBuyerID();
if(auth_buyer_id.notNull())
{
std::string name;
gCacheName->getFullName(auth_buyer_id, name);
mSaleInfoForSale2->setTextArg("[BUYER]", name);
}
else
{
mSaleInfoForSale2->setTextArg("[BUYER]", getString("anyone"));
}
}
}
@@ -776,7 +793,7 @@ void LLPanelLandGeneral::refreshNames()
// virtual
void LLPanelLandGeneral::draw()
{
refreshNames();
//refreshNames();
LLPanel::draw();
}
@@ -933,6 +950,8 @@ void LLPanelLandGeneral::onClickBuyPass(void* data)
args["PARCEL_NAME"] = parcel_name;
args["TIME"] = time;
// creating pointer on selection to avoid deselection of parcel until we are done with buying pass (EXT-6464)
sSelectionForBuyPass = LLViewerParcelMgr::getInstance()->getParcelSelection();
LLNotificationsUtil::add("LandBuyPass", args, LLSD(), cbBuyPass);
}
@@ -963,6 +982,8 @@ bool LLPanelLandGeneral::cbBuyPass(const LLSD& notification, const LLSD& respons
// User clicked OK
LLViewerParcelMgr::getInstance()->buyPass();
}
// we are done with buying pass, additional selection is no longer needed
sSelectionForBuyPass = NULL;
return false;
}
@@ -1023,7 +1044,30 @@ void LLPanelLandGeneral::onClickStopSellLand(void* data)
// LLPanelLandObjects
//---------------------------------------------------------------------------
LLPanelLandObjects::LLPanelLandObjects(LLParcelSelectionHandle& parcel)
: LLPanel(std::string("land_objects_panel")), mParcel(parcel)
: LLPanel(std::string("land_objects_panel")),
mParcel(parcel),
mParcelObjectBonus(NULL),
mSWTotalObjects(NULL),
mObjectContribution(NULL),
mTotalObjects(NULL),
mOwnerObjects(NULL),
mBtnShowOwnerObjects(NULL),
mBtnReturnOwnerObjects(NULL),
mGroupObjects(NULL),
mBtnShowGroupObjects(NULL),
mBtnReturnGroupObjects(NULL),
mOtherObjects(NULL),
mBtnShowOtherObjects(NULL),
mBtnReturnOtherObjects(NULL),
mSelectedObjects(NULL),
mCleanOtherObjectsTime(NULL),
mOtherTime(0),
mBtnRefresh(NULL),
mBtnReturnOwnerList(NULL),
mOwnerList(NULL),
mFirstReply(TRUE),
mSelectedCount(0),
mSelectedIsGroup(FALSE)
{
}
@@ -1779,8 +1823,9 @@ LLPanelLandOptions::LLPanelLandOptions(LLParcelSelectionHandle& parcel)
mClearBtn(NULL),
mMatureCtrl(NULL),
mPushRestrictionCtrl(NULL),
mPublishHelpButton(NULL),
mParcel(parcel)
mSeeAvatarsCtrl(NULL),
mParcel(parcel),
mPublishHelpButton(NULL)
{
}
@@ -1826,6 +1871,9 @@ BOOL LLPanelLandOptions::postBuild()
mPushRestrictionCtrl = getChild<LLCheckBoxCtrl>( "PushRestrictCheck");
childSetCommitCallback("PushRestrictCheck", onCommitAny, this);
mSeeAvatarsCtrl = getChild<LLCheckBoxCtrl>( "SeeAvatarsCheck");
childSetCommitCallback("SeeAvatarsCheck", onCommitAny, this);
mCheckShowDirectory = getChild<LLCheckBoxCtrl>( "ShowDirectoryCheck");
childSetCommitCallback("ShowDirectoryCheck", onCommitAny, this);
@@ -1945,6 +1993,9 @@ void LLPanelLandOptions::refresh()
mPushRestrictionCtrl->set(FALSE);
mPushRestrictionCtrl->setEnabled(FALSE);
mSeeAvatarsCtrl->set(TRUE);
mSeeAvatarsCtrl->setEnabled(FALSE);
mLandingTypeCombo->setCurrentByIndex(0);
mLandingTypeCombo->setEnabled(FALSE);
@@ -2008,6 +2059,10 @@ void LLPanelLandOptions::refresh()
mPushRestrictionCtrl->setEnabled(can_change_options);
}
mSeeAvatarsCtrl->set(parcel->getSeeAVs());
mSeeAvatarsCtrl->setLabel(getString("see_avs_text"));
mSeeAvatarsCtrl->setEnabled(can_change_options && parcel->getHaveNewParcelLimitData());
BOOL can_change_landing_point = LLViewerParcelMgr::isParcelModifiableByAgent(parcel,
GP_LAND_SET_LANDING_POINT);
mLandingTypeCombo->setCurrentByIndex((S32)parcel->getLandingType());
@@ -2210,6 +2265,7 @@ void LLPanelLandOptions::onCommitAny(LLUICtrl *ctrl, void *userdata)
BOOL allow_publish = FALSE;
BOOL mature_publish = self->mMatureCtrl->get();
BOOL push_restriction = self->mPushRestrictionCtrl->get();
BOOL see_avs = self->mSeeAvatarsCtrl->get();
BOOL show_directory = self->mCheckShowDirectory->get();
// we have to get the index from a lookup, not from the position in the dropdown!
S32 category_index = LLParcel::getCategoryFromString(self->mCategoryCombo->getSelectedValue());
@@ -2243,6 +2299,7 @@ void LLPanelLandOptions::onCommitAny(LLUICtrl *ctrl, void *userdata)
parcel->setCategory((LLParcel::ECategory)category_index);
parcel->setLandingType((LLParcel::ELandingType)landing_type_index);
parcel->setSnapshotID(snapshot_id);
parcel->setSeeAVs(see_avs);
// Send current parcel data upstream to server
LLViewerParcelMgr::getInstance()->sendParcelPropertiesUpdate( parcel );
@@ -2323,7 +2380,8 @@ void LLPanelLandOptions::onClickPublishHelp(void*)
//---------------------------------------------------------------------------
LLPanelLandAccess::LLPanelLandAccess(LLParcelSelectionHandle& parcel)
: LLPanel(std::string("land_access_panel")), mParcel(parcel)
: LLPanel(std::string("land_access_panel")),
mParcel(parcel)
{
}
@@ -2820,7 +2878,8 @@ void LLPanelLandAccess::onClickRemoveBanned(void* data)
// LLPanelLandCovenant
//---------------------------------------------------------------------------
LLPanelLandCovenant::LLPanelLandCovenant(LLParcelSelectionHandle& parcel)
: LLPanel(std::string("land_covenant_panel")), mParcel(parcel)
: LLPanel(std::string("land_covenant_panel")),
mParcel(parcel)
{
}

View File

@@ -38,8 +38,9 @@
#include <vector>
#include "llfloater.h"
#include "llpointer.h" // LLPointer<>
//#include "llviewertexturelist.h"
#include "llmemory.h" // LLPointer<>
#include "llsafehandle.h"
typedef std::set<LLUUID, lluuid_less> uuid_list_t;
const F32 CACHE_REFRESH_TIME = 2.5f;
@@ -70,6 +71,7 @@ class LLPanelLandAccess;
class LLPanelLandBan;
class LLPanelLandRenters;
class LLPanelLandCovenant;
class LLParcel;
class LLFloaterLand
: public LLFloater, public LLFloaterSingleton<LLFloaterLand>
@@ -80,6 +82,8 @@ public:
static LLPanelLandObjects* getCurrentPanelLandObjects();
static LLPanelLandCovenant* getCurrentPanelLandCovenant();
LLParcel* getCurrentSelectedParcel();
// Destroys itself on close.
virtual void onClose(bool app_quitting);
@@ -235,6 +239,11 @@ protected:
LLSafeHandle<LLParcelSelection>& mParcel;
// This pointer is needed to avoid parcel deselection until buying pass is completed or canceled.
// Deselection happened because of zero references to parcel selection, which took place when
// "Buy Pass" was called from popup menu(EXT-6464)
static LLPointer<LLParcelSelection> sSelectionForBuyPass;
static LLHandle<LLFloater> sBuyPassDialogHandle;
};
@@ -353,6 +362,7 @@ private:
LLCheckBoxCtrl *mMatureCtrl;
LLCheckBoxCtrl *mPushRestrictionCtrl;
LLCheckBoxCtrl *mSeeAvatarsCtrl;
LLButton *mPublishHelpButton;
LLSafeHandle<LLParcelSelection>& mParcel;

View File

@@ -75,7 +75,9 @@ LLPanelLandAudio::LLPanelLandAudio(LLParcelSelectionHandle& parcel)
mCheckSoundLocal(NULL),
mSoundHelpButton(NULL),
mRadioVoiceChat(NULL),
mMusicURLEdit(NULL)
mMusicURLEdit(NULL),
mCheckAVSoundAny(NULL),
mCheckAVSoundGroup(NULL)
{
}
@@ -100,6 +102,12 @@ BOOL LLPanelLandAudio::postBuild()
mMusicURLEdit = getChild<LLLineEditor>("music_url");
childSetCommitCallback("music_url", onCommitAny, this);
mCheckAVSoundAny = getChild<LLCheckBoxCtrl>("all av sound check");
childSetCommitCallback("all av sound check", onCommitAny, this);
mCheckAVSoundGroup = getChild<LLCheckBoxCtrl>("group av sound check");
childSetCommitCallback("group av sound check", onCommitAny, this);
return TRUE;
}
@@ -140,6 +148,13 @@ void LLPanelLandAudio::refresh()
LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion();
mRadioVoiceChat->setEnabled( region && region->isVoiceEnabled() && can_change_media );
BOOL can_change_av_sounds = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_OPTIONS) && parcel->getHaveNewParcelLimitData();
mCheckAVSoundAny->set(parcel->getAllowAnyAVSounds());
mCheckAVSoundAny->setEnabled(can_change_av_sounds);
mCheckAVSoundGroup->set(parcel->getAllowGroupAVSounds() || parcel->getAllowAnyAVSounds()); // On if "Everyone" is on
mCheckAVSoundGroup->setEnabled(can_change_av_sounds && !parcel->getAllowAnyAVSounds()); // Enabled if "Everyone" is off
}
}
// static
@@ -178,6 +193,13 @@ void LLPanelLandAudio::onCommitAny(LLUICtrl*, void *userdata)
break;
}
BOOL any_av_sound = self->mCheckAVSoundAny->get();
BOOL group_av_sound = TRUE; // If set to "Everyone" then group is checked as well
if (!any_av_sound)
{ // If "Everyone" is off, use the value from the checkbox
group_av_sound = self->mCheckAVSoundGroup->get();
}
// Remove leading/trailing whitespace (common when copying/pasting)
LLStringUtil::trim(music_url);
@@ -186,6 +208,8 @@ void LLPanelLandAudio::onCommitAny(LLUICtrl*, void *userdata)
parcel->setParcelFlag(PF_USE_ESTATE_VOICE_CHAN, voice_estate_chan);
parcel->setParcelFlag(PF_SOUND_LOCAL, sound_local);
parcel->setMusicURL(music_url);
parcel->setAllowAnyAVSounds(any_av_sound);
parcel->setAllowGroupAVSounds(group_av_sound);
// Send current parcel data upstream to server
LLViewerParcelMgr::getInstance()->sendParcelPropertiesUpdate( parcel );

View File

@@ -58,6 +58,8 @@ private:
LLRadioGroup* mRadioVoiceChat;
LLLineEditor* mMusicURLEdit;
LLCheckBoxCtrl* mMusicUrlCheck;
LLCheckBoxCtrl* mCheckAVSoundAny;
LLCheckBoxCtrl* mCheckAVSoundGroup;
LLSafeHandle<LLParcelSelection>& mParcel;
};

View File

@@ -6427,11 +6427,6 @@ class LLShowFloater : public view_listener_t
}
else if (floater_name == "about land")
{
if (LLViewerParcelMgr::getInstance()->selectionEmpty())
{
LLViewerParcelMgr::getInstance()->selectParcelAt(gAgent.getPositionGlobal());
}
LLFloaterLand::showInstance();
}
else if (floater_name == "buy land")

View File

@@ -640,6 +640,9 @@ Only large parcels can be listed in search.
<string name="search_disabled_permissions_tooltip">
This option is disabled because you cannot modify this parcel&apos;s options.
</string>
<string name="see_avs_text">
See and chat with residents on this parcel
</string>
<combo_box allow_text_entry="false" bottom="-140" enabled="false" follows="left|top"
height="18" left="255" max_chars="20" mouse_opaque="true"
name="land category with adult" width="130" visible="false">
@@ -754,17 +757,28 @@ Only large parcels can be listed in search.
Your parcel information or content is considered adult.
</string>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-180" drop_shadow_visible="true" enabled="true" follows="left|top"
bottom="-178" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
mouse_opaque="true" name="allow_label5" v_pad="0" width="278">
Allow Residents on other parcels to:
</text>
<check_box bottom="-196" enabled="false" follows="left|top" font="SansSerifSmall"
height="16" initial_value="false" label="See Avatars" left="14"
mouse_opaque="true" name="SeeAvatarsCheck" radio_style="false"
tool_tip="Allows residents on other parcels to see and chat with residents on this parcel, and you to see and chat with them."
width="107" />
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-212" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
mouse_opaque="true" name="Snapshot:" v_pad="0" width="278">
Snapshot:
</text>
<texture_picker allow_no_texture="false" bottom="-299" can_apply_immediately="false"
<texture_picker allow_no_texture="false" bottom="-349" can_apply_immediately="false"
default_image_name="" enabled="true" follows="left|top" height="135"
label="" left="76" mouse_opaque="true" name="snapshot_ctrl"
label="" left="10" mouse_opaque="true" name="snapshot_ctrl"
tool_tip="Click to choose a picture" width="180" />
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-303" drop_shadow_visible="true" enabled="true" follows="left|top"
bottom="-353" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
mouse_opaque="true" name="landing_point" v_pad="0" width="278">
Landing Point: [LANDING]
@@ -772,22 +786,22 @@ Only large parcels can be listed in search.
<string name="landing_point_none">
(none)
</string>
<button bottom="-303" enabled="true" follows="left|top" font="SansSerifSmall"
<button bottom="-353" enabled="true" follows="left|top" font="SansSerifSmall"
halign="center" height="16" label="Set" label_selected="Set" left="236"
mouse_opaque="true" name="Set" scale_image="true"
tool_tip="Sets the landing point where visitors arrive. Sets to your avatar&apos;s location inside this parcel."
width="50" />
<button bottom="-303" enabled="true" follows="left|top" font="SansSerifSmall"
<button bottom="-353" enabled="true" follows="left|top" font="SansSerifSmall"
halign="center" height="16" label="Clear" label_selected="Clear" left="291"
mouse_opaque="true" name="Clear" scale_image="true"
tool_tip="Clear the landing point." width="50" />
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-323" drop_shadow_visible="true" enabled="true" follows="left|top"
bottom="-373" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
mouse_opaque="true" name="Teleport Routing: " v_pad="0" width="278">
Teleport Routing:
</text>
<combo_box allow_text_entry="false" bottom="-325" enabled="true" follows="left|top"
<combo_box allow_text_entry="false" bottom="-375" enabled="true" follows="left|top"
height="18" left="120" max_chars="20" mouse_opaque="true"
name="landing type"
tool_tip="Teleport Routing -- select how to handle teleports onto your land."
@@ -1321,12 +1335,12 @@ Select the thumbnail to choose a different texture.
Sound:
</text>
<check_box
bottom_delta="0"
bottom_delta="-16"
follows="left|top"
height="16"
label="Restrict gesture and object sounds to this parcel"
layout="topleft"
left_delta="70"
left_delta="20"
name="check_sound_local"
width="200" />
<button
@@ -1340,7 +1354,37 @@ Select the thumbnail to choose a different texture.
name="?"
width="18" />
<text
bottom_delta="-65"
bottom_delta="-30"
follows="left|top"
height="16"
layout="topleft"
left="10"
length="1"
name="Avatar Sounds:"
type="string"
width="364">
Avatar Sounds:
</text>
<check_box
bottom_delta="-16"
follows="left|top"
height="16"
label="Everyone"
layout="topleft"
left_delta="20"
name="all av sound check"
width="200" />
<check_box
bottom_delta="-16"
follows="left|top"
height="16"
label="Group"
layout="topleft"
left_delta="0"
name="group av sound check"
width="200" />
<text
bottom_delta="-30"
follows="left|top"
height="16"
layout="topleft"
@@ -1353,12 +1397,12 @@ Select the thumbnail to choose a different texture.
Voice:
</text>
<radio_group
bottom_delta="-40"
bottom_delta="-56"
draw_border="false"
enabled="true"
follows="left|top"
height="60"
left="80"
left_delta="20"
mouse_opaque="true"
name="parcel_voice_channel"
tab_stop="true"