MAINT-7196: Viewer changes supporting new Allow Access Override opition for estate owners.
parent
08ed7f676f
commit
880be86cf2
|
|
@ -508,6 +508,9 @@ public:
|
|||
{ return mRegionDenyAnonymousOverride; }
|
||||
BOOL getRegionDenyAgeUnverifiedOverride() const
|
||||
{ return mRegionDenyAgeUnverifiedOverride; }
|
||||
BOOL getRegionAllowAccessOverride() const
|
||||
{ return mRegionAllowAccessoverride; }
|
||||
|
||||
|
||||
BOOL getAllowGroupAVSounds() const { return mAllowGroupAVSounds; }
|
||||
BOOL getAllowAnyAVSounds() const { return mAllowAnyAVSounds; }
|
||||
|
|
@ -576,6 +579,7 @@ public:
|
|||
void setRegionPushOverride(BOOL override) {mRegionPushOverride = override; }
|
||||
void setRegionDenyAnonymousOverride(BOOL override) { mRegionDenyAnonymousOverride = override; }
|
||||
void setRegionDenyAgeUnverifiedOverride(BOOL override) { mRegionDenyAgeUnverifiedOverride = override; }
|
||||
void setRegionAllowAccessOverride(BOOL override) { mRegionAllowAccessoverride = override; }
|
||||
|
||||
// Accessors for parcel sellWithObjects
|
||||
void setPreviousOwnerID(LLUUID prev_owner) { mPreviousOwnerID = prev_owner; }
|
||||
|
|
@ -657,6 +661,7 @@ protected:
|
|||
BOOL mRegionPushOverride;
|
||||
BOOL mRegionDenyAnonymousOverride;
|
||||
BOOL mRegionDenyAgeUnverifiedOverride;
|
||||
BOOL mRegionAllowAccessoverride;
|
||||
BOOL mAllowGroupAVSounds;
|
||||
BOOL mAllowAnyAVSounds;
|
||||
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@ const U64 REGION_FLAGS_RESET_HOME_ON_TELEPORT = (1 << 3);
|
|||
// Does the sun move?
|
||||
const U64 REGION_FLAGS_SUN_FIXED = (1 << 4);
|
||||
|
||||
// Does the estate owner allow private parcels?
|
||||
const U64 REGION_FLAGS_ALLOW_ACCESS_OVERRIDE = (1 << 5);
|
||||
|
||||
// Can't change the terrain heightfield, even on owned parcels,
|
||||
// but can plant trees and grass.
|
||||
const U64 REGION_FLAGS_BLOCK_TERRAFORM = (1 << 6);
|
||||
|
|
|
|||
|
|
@ -1372,6 +1372,9 @@ char const* const _PREHASH_OwnerMask = LLMessageStringTable::getInstance()->getS
|
|||
char const* const _PREHASH_TransferInventoryAck = LLMessageStringTable::getInstance()->getString("TransferInventoryAck");
|
||||
char const* const _PREHASH_RegionDenyAgeUnverified = LLMessageStringTable::getInstance()->getString("RegionDenyAgeUnverified");
|
||||
char const* const _PREHASH_AgeVerificationBlock = LLMessageStringTable::getInstance()->getString("AgeVerificationBlock");
|
||||
char const* const _PREHASH_RegionAllowAccessBlock = LLMessageStringTable::getInstance()->getString("RegionAllowAccessBlock");
|
||||
char const* const _PREHASH_RegionAllowAccessOverride = LLMessageStringTable::getInstance()->getString("RegionAllowAccessOverride");
|
||||
|
||||
char const* const _PREHASH_UCoord = LLMessageStringTable::getInstance()->getString("UCoord");
|
||||
char const* const _PREHASH_VCoord = LLMessageStringTable::getInstance()->getString("VCoord");
|
||||
char const* const _PREHASH_FaceIndex = LLMessageStringTable::getInstance()->getString("FaceIndex");
|
||||
|
|
|
|||
|
|
@ -1372,6 +1372,8 @@ extern char const* const _PREHASH_OwnerMask;
|
|||
extern char const* const _PREHASH_TransferInventoryAck;
|
||||
extern char const* const _PREHASH_RegionDenyAgeUnverified;
|
||||
extern char const* const _PREHASH_AgeVerificationBlock;
|
||||
extern char const* const _PREHASH_RegionAllowAccessBlock;
|
||||
extern char const* const _PREHASH_RegionAllowAccessOverride;
|
||||
extern char const* const _PREHASH_UCoord;
|
||||
extern char const* const _PREHASH_VCoord;
|
||||
extern char const* const _PREHASH_FaceIndex;
|
||||
|
|
|
|||
|
|
@ -58,12 +58,18 @@ boost::signals2::connection LLEstateInfoModel::setCommitCallback(const update_si
|
|||
|
||||
void LLEstateInfoModel::sendEstateInfo()
|
||||
{
|
||||
if (!commitEstateInfoCaps())
|
||||
{
|
||||
// the caps method failed, try the old way
|
||||
LLFloaterRegionInfo::nextInvoice();
|
||||
commitEstateInfoDataserver();
|
||||
}
|
||||
std::string url = gAgent.getRegion()->getCapability("EstateChangeInfo");
|
||||
|
||||
if (url.empty())
|
||||
{
|
||||
LL_WARNS("EstateInfo") << "Unable to get URL for cap: EstateChangeInfo!!!" << LL_ENDL;
|
||||
// whoops, couldn't find the cap, so bail out
|
||||
return;
|
||||
}
|
||||
|
||||
LLCoros::instance().launch("LLEstateInfoModel::commitEstateInfoCapsCoro",
|
||||
boost::bind(&LLEstateInfoModel::commitEstateInfoCapsCoro, this, url));
|
||||
|
||||
}
|
||||
|
||||
bool LLEstateInfoModel::getUseFixedSun() const { return getFlag(REGION_FLAGS_SUN_FIXED); }
|
||||
|
|
@ -71,14 +77,16 @@ bool LLEstateInfoModel::getIsExternallyVisible() const { return getFlag(REGION_F
|
|||
bool LLEstateInfoModel::getAllowDirectTeleport() const { return getFlag(REGION_FLAGS_ALLOW_DIRECT_TELEPORT); }
|
||||
bool LLEstateInfoModel::getDenyAnonymous() const { return getFlag(REGION_FLAGS_DENY_ANONYMOUS); }
|
||||
bool LLEstateInfoModel::getDenyAgeUnverified() const { return getFlag(REGION_FLAGS_DENY_AGEUNVERIFIED); }
|
||||
bool LLEstateInfoModel::getAllowVoiceChat() const { return getFlag(REGION_FLAGS_ALLOW_VOICE); }
|
||||
bool LLEstateInfoModel::getAllowVoiceChat() const { return getFlag(REGION_FLAGS_ALLOW_VOICE); }
|
||||
bool LLEstateInfoModel::getAllowAccessOverride() const { return getFlag(REGION_FLAGS_ALLOW_ACCESS_OVERRIDE); }
|
||||
|
||||
void LLEstateInfoModel::setUseFixedSun(bool val) { setFlag(REGION_FLAGS_SUN_FIXED, val); }
|
||||
void LLEstateInfoModel::setIsExternallyVisible(bool val) { setFlag(REGION_FLAGS_EXTERNALLY_VISIBLE, val); }
|
||||
void LLEstateInfoModel::setAllowDirectTeleport(bool val) { setFlag(REGION_FLAGS_ALLOW_DIRECT_TELEPORT, val); }
|
||||
void LLEstateInfoModel::setDenyAnonymous(bool val) { setFlag(REGION_FLAGS_DENY_ANONYMOUS, val); }
|
||||
void LLEstateInfoModel::setDenyAgeUnverified(bool val) { setFlag(REGION_FLAGS_DENY_AGEUNVERIFIED, val); }
|
||||
void LLEstateInfoModel::setAllowVoiceChat(bool val) { setFlag(REGION_FLAGS_ALLOW_VOICE, val); }
|
||||
void LLEstateInfoModel::setAllowVoiceChat(bool val) { setFlag(REGION_FLAGS_ALLOW_VOICE, val); }
|
||||
void LLEstateInfoModel::setAllowAccessOverride(bool val) { setFlag(REGION_FLAGS_ALLOW_ACCESS_OVERRIDE, val); }
|
||||
|
||||
void LLEstateInfoModel::update(const strings_t& strings)
|
||||
{
|
||||
|
|
@ -111,23 +119,6 @@ void LLEstateInfoModel::notifyCommit()
|
|||
|
||||
//== PRIVATE STUFF ============================================================
|
||||
|
||||
// tries to send estate info using a cap; returns true if it succeeded
|
||||
bool LLEstateInfoModel::commitEstateInfoCaps()
|
||||
{
|
||||
std::string url = gAgent.getRegion()->getCapability("EstateChangeInfo");
|
||||
|
||||
if (url.empty())
|
||||
{
|
||||
// whoops, couldn't find the cap, so bail out
|
||||
return false;
|
||||
}
|
||||
|
||||
LLCoros::instance().launch("LLEstateInfoModel::commitEstateInfoCapsCoro",
|
||||
boost::bind(&LLEstateInfoModel::commitEstateInfoCapsCoro, this, url));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void LLEstateInfoModel::commitEstateInfoCapsCoro(std::string url)
|
||||
{
|
||||
LLCore::HttpRequest::policy_t httpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID);
|
||||
|
|
@ -145,6 +136,7 @@ void LLEstateInfoModel::commitEstateInfoCapsCoro(std::string url)
|
|||
body["deny_anonymous"] = getDenyAnonymous();
|
||||
body["deny_age_unverified"] = getDenyAgeUnverified();
|
||||
body["allow_voice_chat"] = getAllowVoiceChat();
|
||||
body["override_public_access"] = getAllowAccessOverride();
|
||||
|
||||
body["invoice"] = LLFloaterRegionInfo::getLastInvoice();
|
||||
|
||||
|
|
@ -169,43 +161,6 @@ void LLEstateInfoModel::commitEstateInfoCapsCoro(std::string url)
|
|||
}
|
||||
}
|
||||
|
||||
/* This is the old way of doing things, is deprecated, and should be
|
||||
deleted when the dataserver model can be removed */
|
||||
// key = "estatechangeinfo"
|
||||
// strings[0] = str(estate_id) (added by simulator before relay - not here)
|
||||
// strings[1] = estate_name
|
||||
// strings[2] = str(estate_flags)
|
||||
// strings[3] = str((S32)(sun_hour * 1024.f))
|
||||
void LLEstateInfoModel::commitEstateInfoDataserver()
|
||||
{
|
||||
LL_DEBUGS("Windlight Sync") << "Sending estate info: "
|
||||
<< "is_sun_fixed = " << getUseFixedSun()
|
||||
<< ", sun_hour = " << getSunHour() << LL_ENDL;
|
||||
LL_DEBUGS() << getInfoDump() << LL_ENDL;
|
||||
|
||||
LLMessageSystem* msg = gMessageSystem;
|
||||
msg->newMessage("EstateOwnerMessage");
|
||||
msg->nextBlockFast(_PREHASH_AgentData);
|
||||
msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
|
||||
msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
|
||||
msg->addUUIDFast(_PREHASH_TransactionID, LLUUID::null); //not used
|
||||
|
||||
msg->nextBlock("MethodData");
|
||||
msg->addString("Method", "estatechangeinfo");
|
||||
msg->addUUID("Invoice", LLFloaterRegionInfo::getLastInvoice());
|
||||
|
||||
msg->nextBlock("ParamList");
|
||||
msg->addString("Parameter", getName());
|
||||
|
||||
msg->nextBlock("ParamList");
|
||||
msg->addString("Parameter", llformat("%u", getFlags()));
|
||||
|
||||
msg->nextBlock("ParamList");
|
||||
msg->addString("Parameter", llformat("%d", (S32) (getSunHour() * 1024.0f)));
|
||||
|
||||
gAgent.sendMessage();
|
||||
}
|
||||
|
||||
std::string LLEstateInfoModel::getInfoDump()
|
||||
{
|
||||
LLSD dump;
|
||||
|
|
@ -218,6 +173,7 @@ std::string LLEstateInfoModel::getInfoDump()
|
|||
dump["deny_anonymous" ] = getDenyAnonymous();
|
||||
dump["deny_age_unverified" ] = getDenyAgeUnverified();
|
||||
dump["allow_voice_chat" ] = getAllowVoiceChat();
|
||||
dump["override_public_access"] = getAllowAccessOverride();
|
||||
|
||||
std::stringstream dump_str;
|
||||
dump_str << dump;
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ public:
|
|||
bool getDenyAnonymous() const;
|
||||
bool getDenyAgeUnverified() const;
|
||||
bool getAllowVoiceChat() const;
|
||||
bool getAllowAccessOverride() const;
|
||||
|
||||
const std::string& getName() const { return mName; }
|
||||
const LLUUID& getOwnerID() const { return mOwnerID; }
|
||||
|
|
@ -68,6 +69,7 @@ public:
|
|||
void setDenyAnonymous(bool val);
|
||||
void setDenyAgeUnverified(bool val);
|
||||
void setAllowVoiceChat(bool val);
|
||||
void setAllowAccessOverride(bool val);
|
||||
|
||||
void setSunHour(F32 sun_hour) { mSunHour = sun_hour; }
|
||||
|
||||
|
|
@ -82,8 +84,6 @@ protected:
|
|||
void notifyCommit();
|
||||
|
||||
private:
|
||||
bool commitEstateInfoCaps();
|
||||
void commitEstateInfoDataserver();
|
||||
inline bool getFlag(U64 flag) const;
|
||||
inline void setFlag(U64 flag, bool val);
|
||||
U64 getFlags() const { return mFlags; }
|
||||
|
|
|
|||
|
|
@ -2432,9 +2432,16 @@ void LLPanelLandAccess::refresh()
|
|||
BOOL use_group = parcel->getParcelFlag(PF_USE_ACCESS_GROUP);
|
||||
BOOL public_access = !use_access_list;
|
||||
|
||||
getChild<LLUICtrl>("public_access")->setValue(public_access );
|
||||
getChild<LLUICtrl>("GroupCheck")->setValue(use_group );
|
||||
|
||||
if (parcel->getRegionAllowAccessOverride())
|
||||
{
|
||||
getChild<LLUICtrl>("public_access")->setValue(public_access);
|
||||
getChild<LLUICtrl>("GroupCheck")->setValue(use_group);
|
||||
}
|
||||
else
|
||||
{
|
||||
getChild<LLUICtrl>("public_access")->setValue(TRUE);
|
||||
getChild<LLUICtrl>("GroupCheck")->setValue(FALSE);
|
||||
}
|
||||
std::string group_name;
|
||||
gCacheName->getGroupName(parcel->getGroupID(), group_name);
|
||||
getChild<LLUICtrl>("GroupCheck")->setLabelArg("[GROUP]", group_name );
|
||||
|
|
@ -2610,9 +2617,14 @@ void LLPanelLandAccess::refresh_ui()
|
|||
LLParcel *parcel = mParcel->getParcel();
|
||||
if (parcel && !gDisconnected)
|
||||
{
|
||||
BOOL can_manage_allowed = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_MANAGE_ALLOWED);
|
||||
BOOL can_manage_allowed = false;
|
||||
BOOL can_manage_banned = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_MANAGE_BANNED);
|
||||
|
||||
if (parcel->getRegionAllowAccessOverride())
|
||||
{ // Estate owner may have disabled allowing the parcel owner from managing access.
|
||||
can_manage_allowed = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_MANAGE_ALLOWED);
|
||||
}
|
||||
|
||||
getChildView("public_access")->setEnabled(can_manage_allowed);
|
||||
BOOL public_access = getChild<LLUICtrl>("public_access")->getValue().asBoolean();
|
||||
if (public_access)
|
||||
|
|
|
|||
|
|
@ -2236,6 +2236,7 @@ BOOL LLPanelEstateInfo::postBuild()
|
|||
initCtrl("limit_payment");
|
||||
initCtrl("limit_age_verified");
|
||||
initCtrl("voice_chat_check");
|
||||
initCtrl("parcel_access_override");
|
||||
|
||||
getChild<LLUICtrl>("allowed_avatar_name_list")->setCommitCallback(boost::bind(&LLPanelEstateInfo::onChangeChildCtrl, this, _1));
|
||||
LLNameListCtrl *avatar_name_list = getChild<LLNameListCtrl>("allowed_avatar_name_list");
|
||||
|
|
@ -2315,6 +2316,7 @@ void LLPanelEstateInfo::refreshFromEstate()
|
|||
getChild<LLUICtrl>("allow_direct_teleport")->setValue(estate_info.getAllowDirectTeleport());
|
||||
getChild<LLUICtrl>("limit_payment")->setValue(estate_info.getDenyAnonymous());
|
||||
getChild<LLUICtrl>("limit_age_verified")->setValue(estate_info.getDenyAgeUnverified());
|
||||
getChild<LLUICtrl>("parcel_access_override")->setValue(estate_info.getAllowAccessOverride());
|
||||
|
||||
// Ensure appriopriate state of the management UI
|
||||
updateControls(gAgent.getRegion());
|
||||
|
|
@ -2357,7 +2359,9 @@ bool LLPanelEstateInfo::callbackChangeLindenEstate(const LLSD& notification, con
|
|||
estate_info.setDenyAnonymous(getChild<LLUICtrl>("limit_payment")->getValue().asBoolean());
|
||||
estate_info.setDenyAgeUnverified(getChild<LLUICtrl>("limit_age_verified")->getValue().asBoolean());
|
||||
estate_info.setAllowVoiceChat(getChild<LLUICtrl>("voice_chat_check")->getValue().asBoolean());
|
||||
|
||||
estate_info.setAllowAccessOverride(getChild<LLUICtrl>("parcel_access_override")->getValue().asBoolean());
|
||||
// JIGGLYPUFF
|
||||
//estate_info.setAllowAccessOverride(getChild<LLUICtrl>("")->getValue().asBoolean());
|
||||
// send the update to sim
|
||||
estate_info.sendEstateInfo();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1427,122 +1427,128 @@ void LLViewerParcelMgr::processParcelOverlay(LLMessageSystem *msg, void **user)
|
|||
// static
|
||||
void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **user)
|
||||
{
|
||||
S32 request_result;
|
||||
S32 sequence_id;
|
||||
BOOL snap_selection = FALSE;
|
||||
S32 self_count = 0;
|
||||
S32 other_count = 0;
|
||||
S32 public_count = 0;
|
||||
S32 local_id;
|
||||
LLUUID owner_id;
|
||||
BOOL is_group_owned;
|
||||
U32 auction_id = 0;
|
||||
S32 claim_price_per_meter = 0;
|
||||
S32 rent_price_per_meter = 0;
|
||||
S32 claim_date = 0;
|
||||
LLVector3 aabb_min;
|
||||
LLVector3 aabb_max;
|
||||
S32 area = 0;
|
||||
S32 sw_max_prims = 0;
|
||||
S32 sw_total_prims = 0;
|
||||
//LLUUID buyer_id;
|
||||
U8 status = 0;
|
||||
S32 max_prims = 0;
|
||||
S32 total_prims = 0;
|
||||
S32 owner_prims = 0;
|
||||
S32 group_prims = 0;
|
||||
S32 other_prims = 0;
|
||||
S32 selected_prims = 0;
|
||||
F32 parcel_prim_bonus = 1.f;
|
||||
BOOL region_push_override = false;
|
||||
BOOL region_deny_anonymous_override = false;
|
||||
BOOL region_deny_identified_override = false; // Deprecated
|
||||
BOOL region_deny_transacted_override = false; // Deprecated
|
||||
BOOL region_deny_age_unverified_override = false;
|
||||
S32 request_result;
|
||||
S32 sequence_id;
|
||||
BOOL snap_selection = FALSE;
|
||||
S32 self_count = 0;
|
||||
S32 other_count = 0;
|
||||
S32 public_count = 0;
|
||||
S32 local_id;
|
||||
LLUUID owner_id;
|
||||
BOOL is_group_owned;
|
||||
U32 auction_id = 0;
|
||||
S32 claim_price_per_meter = 0;
|
||||
S32 rent_price_per_meter = 0;
|
||||
S32 claim_date = 0;
|
||||
LLVector3 aabb_min;
|
||||
LLVector3 aabb_max;
|
||||
S32 area = 0;
|
||||
S32 sw_max_prims = 0;
|
||||
S32 sw_total_prims = 0;
|
||||
//LLUUID buyer_id;
|
||||
U8 status = 0;
|
||||
S32 max_prims = 0;
|
||||
S32 total_prims = 0;
|
||||
S32 owner_prims = 0;
|
||||
S32 group_prims = 0;
|
||||
S32 other_prims = 0;
|
||||
S32 selected_prims = 0;
|
||||
F32 parcel_prim_bonus = 1.f;
|
||||
BOOL region_push_override = false;
|
||||
BOOL region_deny_anonymous_override = false;
|
||||
BOOL region_deny_identified_override = false; // Deprecated
|
||||
BOOL region_deny_transacted_override = false; // Deprecated
|
||||
BOOL region_deny_age_unverified_override = false;
|
||||
BOOL region_allow_access_override = true;
|
||||
BOOL agent_parcel_update = false; // updating previous(existing) agent parcel
|
||||
|
||||
S32 other_clean_time = 0;
|
||||
S32 other_clean_time = 0;
|
||||
|
||||
LLViewerParcelMgr& parcel_mgr = LLViewerParcelMgr::instance();
|
||||
LLViewerParcelMgr& parcel_mgr = LLViewerParcelMgr::instance();
|
||||
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_RequestResult, request_result );
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_SequenceID, sequence_id );
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_RequestResult, request_result);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_SequenceID, sequence_id);
|
||||
|
||||
if (request_result == PARCEL_RESULT_NO_DATA)
|
||||
{
|
||||
// no valid parcel data
|
||||
LL_INFOS() << "no valid parcel data" << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
if (request_result == PARCEL_RESULT_NO_DATA)
|
||||
{
|
||||
// no valid parcel data
|
||||
LL_INFOS() << "no valid parcel data" << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
// Decide where the data will go.
|
||||
LLParcel* parcel = NULL;
|
||||
if (sequence_id == SELECTED_PARCEL_SEQ_ID)
|
||||
{
|
||||
// ...selected parcels report this sequence id
|
||||
parcel_mgr.mRequestResult = PARCEL_RESULT_SUCCESS;
|
||||
parcel = parcel_mgr.mCurrentParcel;
|
||||
}
|
||||
else if (sequence_id == HOVERED_PARCEL_SEQ_ID)
|
||||
{
|
||||
parcel_mgr.mHoverRequestResult = PARCEL_RESULT_SUCCESS;
|
||||
parcel = parcel_mgr.mHoverParcel;
|
||||
}
|
||||
else if (sequence_id == COLLISION_NOT_IN_GROUP_PARCEL_SEQ_ID ||
|
||||
sequence_id == COLLISION_NOT_ON_LIST_PARCEL_SEQ_ID ||
|
||||
sequence_id == COLLISION_BANNED_PARCEL_SEQ_ID)
|
||||
{
|
||||
parcel_mgr.mHoverRequestResult = PARCEL_RESULT_SUCCESS;
|
||||
parcel = parcel_mgr.mCollisionParcel;
|
||||
}
|
||||
else if (sequence_id == 0 || sequence_id > parcel_mgr.mAgentParcelSequenceID)
|
||||
{
|
||||
// new agent parcel
|
||||
parcel_mgr.mAgentParcelSequenceID = sequence_id;
|
||||
parcel = parcel_mgr.mAgentParcel;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_INFOS() << "out of order agent parcel sequence id " << sequence_id
|
||||
<< " last good " << parcel_mgr.mAgentParcelSequenceID
|
||||
<< LL_ENDL;
|
||||
return;
|
||||
}
|
||||
// Decide where the data will go.
|
||||
LLParcel* parcel = NULL;
|
||||
if (sequence_id == SELECTED_PARCEL_SEQ_ID)
|
||||
{
|
||||
// ...selected parcels report this sequence id
|
||||
parcel_mgr.mRequestResult = PARCEL_RESULT_SUCCESS;
|
||||
parcel = parcel_mgr.mCurrentParcel;
|
||||
}
|
||||
else if (sequence_id == HOVERED_PARCEL_SEQ_ID)
|
||||
{
|
||||
parcel_mgr.mHoverRequestResult = PARCEL_RESULT_SUCCESS;
|
||||
parcel = parcel_mgr.mHoverParcel;
|
||||
}
|
||||
else if (sequence_id == COLLISION_NOT_IN_GROUP_PARCEL_SEQ_ID ||
|
||||
sequence_id == COLLISION_NOT_ON_LIST_PARCEL_SEQ_ID ||
|
||||
sequence_id == COLLISION_BANNED_PARCEL_SEQ_ID)
|
||||
{
|
||||
parcel_mgr.mHoverRequestResult = PARCEL_RESULT_SUCCESS;
|
||||
parcel = parcel_mgr.mCollisionParcel;
|
||||
}
|
||||
else if (sequence_id == 0 || sequence_id > parcel_mgr.mAgentParcelSequenceID)
|
||||
{
|
||||
// new agent parcel
|
||||
parcel_mgr.mAgentParcelSequenceID = sequence_id;
|
||||
parcel = parcel_mgr.mAgentParcel;
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_INFOS() << "out of order agent parcel sequence id " << sequence_id
|
||||
<< " last good " << parcel_mgr.mAgentParcelSequenceID
|
||||
<< LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
msg->getBOOL("ParcelData", "SnapSelection", snap_selection);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_SelfCount, self_count);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_OtherCount, other_count);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_PublicCount, public_count);
|
||||
msg->getS32Fast( _PREHASH_ParcelData, _PREHASH_LocalID, local_id );
|
||||
msg->getUUIDFast(_PREHASH_ParcelData, _PREHASH_OwnerID, owner_id);
|
||||
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_IsGroupOwned, is_group_owned);
|
||||
msg->getU32Fast(_PREHASH_ParcelData, _PREHASH_AuctionID, auction_id);
|
||||
msg->getS32Fast( _PREHASH_ParcelData, _PREHASH_ClaimDate, claim_date);
|
||||
msg->getS32Fast( _PREHASH_ParcelData, _PREHASH_ClaimPrice, claim_price_per_meter);
|
||||
msg->getS32Fast( _PREHASH_ParcelData, _PREHASH_RentPrice, rent_price_per_meter);
|
||||
msg->getVector3Fast(_PREHASH_ParcelData, _PREHASH_AABBMin, aabb_min);
|
||||
msg->getVector3Fast(_PREHASH_ParcelData, _PREHASH_AABBMax, aabb_max);
|
||||
msg->getS32Fast( _PREHASH_ParcelData, _PREHASH_Area, area );
|
||||
//msg->getUUIDFast( _PREHASH_ParcelData, _PREHASH_BuyerID, buyer_id);
|
||||
msg->getU8("ParcelData", "Status", status);
|
||||
msg->getS32("ParcelData", "SimWideMaxPrims", sw_max_prims );
|
||||
msg->getS32("ParcelData", "SimWideTotalPrims", sw_total_prims );
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_MaxPrims, max_prims );
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_TotalPrims, total_prims );
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_OwnerPrims, owner_prims );
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_GroupPrims, group_prims );
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_OtherPrims, other_prims );
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_SelectedPrims, selected_prims );
|
||||
msg->getF32Fast(_PREHASH_ParcelData, _PREHASH_ParcelPrimBonus, parcel_prim_bonus );
|
||||
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_RegionPushOverride, region_push_override );
|
||||
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_RegionDenyAnonymous, region_deny_anonymous_override );
|
||||
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_RegionDenyIdentified, region_deny_identified_override ); // Deprecated
|
||||
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_RegionDenyTransacted, region_deny_transacted_override ); // Deprecated
|
||||
if (msg->getNumberOfBlocksFast(_PREHASH_AgeVerificationBlock))
|
||||
{
|
||||
// this block was added later and may not be on older sims, so we have to test its existence first
|
||||
msg->getBOOLFast(_PREHASH_AgeVerificationBlock, _PREHASH_RegionDenyAgeUnverified, region_deny_age_unverified_override );
|
||||
}
|
||||
msg->getBOOL("ParcelData", "SnapSelection", snap_selection);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_SelfCount, self_count);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_OtherCount, other_count);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_PublicCount, public_count);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_LocalID, local_id);
|
||||
msg->getUUIDFast(_PREHASH_ParcelData, _PREHASH_OwnerID, owner_id);
|
||||
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_IsGroupOwned, is_group_owned);
|
||||
msg->getU32Fast(_PREHASH_ParcelData, _PREHASH_AuctionID, auction_id);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_ClaimDate, claim_date);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_ClaimPrice, claim_price_per_meter);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_RentPrice, rent_price_per_meter);
|
||||
msg->getVector3Fast(_PREHASH_ParcelData, _PREHASH_AABBMin, aabb_min);
|
||||
msg->getVector3Fast(_PREHASH_ParcelData, _PREHASH_AABBMax, aabb_max);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_Area, area);
|
||||
//msg->getUUIDFast( _PREHASH_ParcelData, _PREHASH_BuyerID, buyer_id);
|
||||
msg->getU8("ParcelData", "Status", status);
|
||||
msg->getS32("ParcelData", "SimWideMaxPrims", sw_max_prims);
|
||||
msg->getS32("ParcelData", "SimWideTotalPrims", sw_total_prims);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_MaxPrims, max_prims);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_TotalPrims, total_prims);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_OwnerPrims, owner_prims);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_GroupPrims, group_prims);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_OtherPrims, other_prims);
|
||||
msg->getS32Fast(_PREHASH_ParcelData, _PREHASH_SelectedPrims, selected_prims);
|
||||
msg->getF32Fast(_PREHASH_ParcelData, _PREHASH_ParcelPrimBonus, parcel_prim_bonus);
|
||||
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_RegionPushOverride, region_push_override);
|
||||
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_RegionDenyAnonymous, region_deny_anonymous_override);
|
||||
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_RegionDenyIdentified, region_deny_identified_override); // Deprecated
|
||||
msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_RegionDenyTransacted, region_deny_transacted_override); // Deprecated
|
||||
if (msg->getNumberOfBlocksFast(_PREHASH_AgeVerificationBlock))
|
||||
{
|
||||
// this block was added later and may not be on older sims, so we have to test its existence first
|
||||
msg->getBOOLFast(_PREHASH_AgeVerificationBlock, _PREHASH_RegionDenyAgeUnverified, region_deny_age_unverified_override);
|
||||
}
|
||||
|
||||
if (msg->getNumberOfBlocks(_PREHASH_RegionAllowAccessBlock))
|
||||
{
|
||||
msg->getBOOLFast(_PREHASH_RegionAllowAccessBlock, _PREHASH_RegionAllowAccessOverride, region_allow_access_override);
|
||||
}
|
||||
|
||||
msg->getS32("ParcelData", "OtherCleanTime", other_clean_time );
|
||||
|
||||
|
|
@ -1585,6 +1591,7 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use
|
|||
parcel->setRegionPushOverride(region_push_override);
|
||||
parcel->setRegionDenyAnonymousOverride(region_deny_anonymous_override);
|
||||
parcel->setRegionDenyAgeUnverifiedOverride(region_deny_age_unverified_override);
|
||||
parcel->setRegionAllowAccessOverride(region_allow_access_override);
|
||||
parcel->unpackMessage(msg);
|
||||
|
||||
if (parcel == parcel_mgr.mAgentParcel)
|
||||
|
|
|
|||
|
|
@ -98,20 +98,28 @@
|
|||
width="200" />
|
||||
|
||||
<check_box
|
||||
height="20"
|
||||
label="Allow Voice Chat"
|
||||
height="18"
|
||||
label="Allow Parcel Access Override"
|
||||
layout="topleft"
|
||||
left="280"
|
||||
name="voice_chat_check"
|
||||
name="parcel_access_override"
|
||||
top_delta="0"
|
||||
width="200" />
|
||||
<check_box
|
||||
height="20"
|
||||
height="18"
|
||||
label="Allow Voice Chat"
|
||||
layout="topleft"
|
||||
left_delta ="0"
|
||||
name="voice_chat_check"
|
||||
top_pad="4"
|
||||
width="200" />
|
||||
<check_box
|
||||
height="18"
|
||||
label="Allow Direct Teleport"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="allow_direct_teleport"
|
||||
top_pad="4"
|
||||
top_pad="2"
|
||||
width="80" />
|
||||
<button
|
||||
enabled="false"
|
||||
|
|
@ -120,7 +128,7 @@
|
|||
label="Apply"
|
||||
layout="topleft"
|
||||
name="apply_btn"
|
||||
top_pad="15"
|
||||
top_pad="7"
|
||||
left_delta="0"
|
||||
width="97" />
|
||||
|
||||
|
|
|
|||
|
|
@ -4499,6 +4499,10 @@ version 2.0
|
|||
AgeVerificationBlock Single
|
||||
{ RegionDenyAgeUnverified BOOL }
|
||||
}
|
||||
{
|
||||
RegionAllowAccessBlock Single
|
||||
{ RegionAllowAccessOverride BOOL }
|
||||
}
|
||||
}
|
||||
|
||||
// ParcelPropertiesUpdate
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
845459c1bb7fe8174fb493528fe2a214015f996d
|
||||
337f351910b0c8821cb3d447bc6578516a043c80
|
||||
Loading…
Reference in New Issue