本文整理汇总了C++中LLViewerRegion::getSimAccessString方法的典型用法代码示例。如果您正苦于以下问题:C++ LLViewerRegion::getSimAccessString方法的具体用法?C++ LLViewerRegion::getSimAccessString怎么用?C++ LLViewerRegion::getSimAccessString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LLViewerRegion
的用法示例。
在下文中一共展示了LLViewerRegion::getSimAccessString方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: refresh
//.........这里部分代码省略.........
x += buttonRect.getWidth();
}
std::string location_name;
if (region)
{
const LLVector3& agent_pos_region = gAgent.getPositionAgent();
S32 pos_x = lltrunc( agent_pos_region.mV[VX] );
S32 pos_y = lltrunc( agent_pos_region.mV[VY] );
S32 pos_z = lltrunc( agent_pos_region.mV[VZ] );
// Round the numbers based on the velocity
LLVector3 agent_velocity = gAgent.getVelocity();
F32 velocity_mag_sq = agent_velocity.magVecSquared();
const F32 FLY_CUTOFF = 6.f; // meters/sec
const F32 FLY_CUTOFF_SQ = FLY_CUTOFF * FLY_CUTOFF;
const F32 WALK_CUTOFF = 1.5f; // meters/sec
const F32 WALK_CUTOFF_SQ = WALK_CUTOFF * WALK_CUTOFF;
if (velocity_mag_sq > FLY_CUTOFF_SQ)
{
pos_x -= pos_x % 4;
pos_y -= pos_y % 4;
}
else if (velocity_mag_sq > WALK_CUTOFF_SQ)
{
pos_x -= pos_x % 2;
pos_y -= pos_y % 2;
}
mRegionDetails.mTime = mTextTime->getText();
mRegionDetails.mBalance = mBalance;
mRegionDetails.mAccessString = region->getSimAccessString();
mRegionDetails.mPing = region->getNetDetailsForLCD();
if (parcel)
{
location_name = region->getName()
+ llformat(" %d, %d, %d (%s) - %s",
pos_x, pos_y, pos_z,
region->getSimAccessString().c_str(),
parcel->getName().c_str());
// keep these around for the LCD to use
mRegionDetails.mRegionName = region->getName();
mRegionDetails.mParcelName = parcel->getName();
mRegionDetails.mX = pos_x;
mRegionDetails.mY = pos_y;
mRegionDetails.mZ = pos_z;
mRegionDetails.mArea = parcel->getArea();
mRegionDetails.mForSale = parcel->getForSale();
mRegionDetails.mTraffic = LLViewerParcelMgr::getInstance()->getDwelling();
if (parcel->isPublic())
{
mRegionDetails.mOwner = "Public";
}
else
{
if (parcel->getIsGroupOwned())
{
if(!parcel->getGroupID().isNull())
{
gCacheName->getGroupName(parcel->getGroupID(), mRegionDetails.mOwner);
}
示例2: doResetParcel
// Reset all the values for the parcel in preparation for a sale
void LLFloaterAuction::doResetParcel()
{
LLParcel* parcelp = mParcelp->getParcel();
LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion();
if (parcelp
&& region
&& !mParcelUpdateCapUrl.empty())
{
LLSD body;
std::string empty;
// request new properties update from simulator
U32 message_flags = 0x01;
body["flags"] = ll_sd_from_U32(message_flags);
// Set all the default parcel properties for auction
body["local_id"] = parcelp->getLocalID();
U32 parcel_flags = PF_ALLOW_LANDMARK |
PF_ALLOW_FLY |
PF_CREATE_GROUP_OBJECTS |
PF_ALLOW_ALL_OBJECT_ENTRY |
PF_ALLOW_GROUP_OBJECT_ENTRY |
PF_ALLOW_GROUP_SCRIPTS |
PF_RESTRICT_PUSHOBJECT |
PF_SOUND_LOCAL |
PF_ALLOW_VOICE_CHAT |
PF_USE_ESTATE_VOICE_CHAN;
body["parcel_flags"] = ll_sd_from_U32(parcel_flags);
// Build a parcel name like "Ahern (128,128) PG 4032m"
std::ostringstream parcel_name;
LLVector3 center_point( parcelp->getCenterpoint() );
center_point.snap(0); // Get rid of fractions
parcel_name << region->getName()
<< " ("
<< (S32) center_point.mV[VX]
<< ","
<< (S32) center_point.mV[VY]
<< ") "
<< region->getSimAccessString()
<< " "
<< parcelp->getArea()
<< "m";
std::string new_name(parcel_name.str().c_str());
body["name"] = new_name;
getChild<LLUICtrl>("parcel_text")->setValue(new_name); // Set name in dialog as well, since it won't get updated otherwise
body["sale_price"] = (S32) 0;
body["description"] = empty;
body["music_url"] = empty;
body["media_url"] = empty;
body["media_desc"] = empty;
body["media_type"] = LLMIMETypes::getDefaultMimeType();
body["media_width"] = (S32) 0;
body["media_height"] = (S32) 0;
body["auto_scale"] = (S32) 0;
body["media_loop"] = (S32) 0;
body["obscure_media"] = (S32) 0; // OBSOLETE - no longer used
body["obscure_music"] = (S32) 0; // OBSOLETE - no longer used
body["media_id"] = LLUUID::null;
body["group_id"] = MAINTENANCE_GROUP_ID; // Use maintenance group
body["pass_price"] = (S32) 10; // Defaults to $10
body["pass_hours"] = 0.0f;
body["category"] = (U8) LLParcel::C_NONE;
body["auth_buyer_id"] = LLUUID::null;
body["snapshot_id"] = LLUUID::null;
body["user_location"] = ll_sd_from_vector3( LLVector3::zero );
body["user_look_at"] = ll_sd_from_vector3( LLVector3::zero );
body["landing_type"] = (U8) LLParcel::L_DIRECT;
llinfos << "Sending parcel update to reset for auction via capability to: "
<< mParcelUpdateCapUrl << llendl;
LLHTTPClient::post(mParcelUpdateCapUrl, body, new LLHTTPClient::Responder());
// Send a message to clear the object return time
LLMessageSystem *msg = gMessageSystem;
msg->newMessageFast(_PREHASH_ParcelSetOtherCleanTime);
msg->nextBlockFast(_PREHASH_AgentData);
msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
msg->nextBlockFast(_PREHASH_ParcelData);
msg->addS32Fast(_PREHASH_LocalID, parcelp->getLocalID());
msg->addS32Fast(_PREHASH_OtherCleanTime, 5); // 5 minute object auto-return
msg->sendReliable(region->getHost());
// Clear the access lists
clearParcelAccessLists(parcelp, region);
}
}
示例3: refresh
// Per-frame updates of visibility
void LLStatusBar::refresh()
{
static LLCachedControl<bool> show_net_stats(gSavedSettings, "ShowNetStats", false);
bool net_stats_visible = show_net_stats;
if (net_stats_visible)
{
// Adding Net Stat Meter back in
F32 bwtotal = gViewerThrottle.getMaxBandwidth() / 1000.f;
mSGBandwidth->setMin(0.f);
mSGBandwidth->setMax(bwtotal*1.25f);
mSGBandwidth->setThreshold(0, bwtotal*0.75f);
mSGBandwidth->setThreshold(1, bwtotal);
mSGBandwidth->setThreshold(2, bwtotal);
}
// update clock every 10 seconds
if(mClockUpdateTimer.getElapsedTimeF32() > 10.f)
{
mClockUpdateTimer.reset();
// Get current UTC time, adjusted for the user's clock
// being off.
time_t utc_time;
utc_time = time_corrected();
std::string timeStr = getString("time");
LLSD substitution;
substitution["datetime"] = (S32) utc_time;
LLStringUtil::format (timeStr, substitution);
mTextTime->setText(timeStr);
// set the tooltip to have the date
std::string dtStr = getString("timeTooltip");
LLStringUtil::format (dtStr, substitution);
//MK
if (gRRenabled)
{
LLViewerRegion* region = gAgent.getRegion();
if (region)
{
dtStr = dtStr + " (" + region->getSimAccessString() + ")";
}
}
//mk
mTextTime->setToolTip (dtStr);
}
LLRect r;
const S32 MENU_RIGHT = gMenuBarView->getRightmostMenuEdge();
// reshape menu bar to its content's width
if (MENU_RIGHT != gMenuBarView->getRect().getWidth())
{
gMenuBarView->reshape(MENU_RIGHT, gMenuBarView->getRect().getHeight());
}
//MK
// also update the parcel info panel pos -KC
if ((MENU_RIGHT + MENU_PARCEL_SPACING) != mParcelInfoPanel->getRect().mLeft)
{
updateParcelPanel();
}
//mk
mSGBandwidth->setVisible(net_stats_visible);
mSGPacketLoss->setVisible(net_stats_visible);
mBtnStats->setEnabled(net_stats_visible);
// update the master volume button state
bool mute_audio = LLAppViewer::instance()->getMasterSystemAudioMute();
mBtnVolume->setToggleState(mute_audio);
// Disable media toggle if there's no media, parcel media, and no parcel audio
// (or if media is disabled)
bool button_enabled = (gSavedSettings.getBOOL("AudioStreamingMusic")||gSavedSettings.getBOOL("AudioStreamingMedia")) &&
(LLViewerMedia::hasInWorldMedia() || LLViewerMedia::hasParcelMedia() || LLViewerMedia::hasParcelAudio());
mMediaToggle->setEnabled(button_enabled);
// Note the "sense" of the toggle is opposite whether media is playing or not
bool any_media_playing = (LLViewerMedia::isAnyMediaShowing() ||
LLViewerMedia::isParcelMediaPlaying() ||
LLViewerMedia::isParcelAudioPlaying());
mMediaToggle->setValue(!any_media_playing);
}
示例4: refresh
//.........这里部分代码省略.........
// Round the numbers based on the velocity
LLVector3 agent_velocity = gAgent.getVelocity();
F32 velocity_mag_sq = agent_velocity.magVecSquared();
const F32 FLY_CUTOFF = 6.f; // meters/sec
const F32 FLY_CUTOFF_SQ = FLY_CUTOFF * FLY_CUTOFF;
const F32 WALK_CUTOFF = 1.5f; // meters/sec
const F32 WALK_CUTOFF_SQ = WALK_CUTOFF * WALK_CUTOFF;
if (velocity_mag_sq > FLY_CUTOFF_SQ)
{
pos_x -= pos_x % 4;
pos_y -= pos_y % 4;
}
else if (velocity_mag_sq > WALK_CUTOFF_SQ)
{
pos_x -= pos_x % 2;
pos_y -= pos_y % 2;
}
if (parcel)
{
if (!LLAgentUI::buildLocationString(location_name, LLAgentUI::LOCATION_FORMAT_FULL))
{
location_name = "???";
}
}
else
{
location_name = region->getName()
+ llformat(" %d, %d, %d (%s)",
pos_x, pos_y, pos_z,
region->getSimAccessString().c_str());
}
static LLCachedControl<bool> show_channel("ShowSimChannel");
if (show_channel && !gLastVersionChannel.empty()) location_name += " - " + gLastVersionChannel;
}
else
{
// no region
location_name = "(Unknown)";
}
// [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a) | Modified: RLVa-1.0.0a
if ( (region) && (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) ) // region == NULL if we lose our connection to the grid
{
location_name = llformat("%s (%s) - %s",
RlvStrings::getString(RLV_STRING_HIDDEN_REGION).c_str(), region->getSimAccessString().c_str(),
RlvStrings::getString(RLV_STRING_HIDDEN).c_str());
}
// [/RLVa:KB]
mTextParcelName->setText(location_name);
// x = right edge
// loop through: stat graphs, search btn, search text editor, money, buy money, clock
// adjust rect
// finally adjust parcel name rect
S32 new_right = getRect().getWidth();
if (search_visible)
{
childGetRect("search_btn", r);
示例5: buildLocationString
BOOL LLAgentUI::buildLocationString(std::string& str, ELocationFormat fmt,const LLVector3& agent_pos_region)
{
LLViewerRegion* region = gAgent.getRegion();
LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
if (!region || !parcel) return FALSE;
S32 pos_x = S32(agent_pos_region.mV[VX]);
S32 pos_y = S32(agent_pos_region.mV[VY]);
S32 pos_z = S32(agent_pos_region.mV[VZ]);
// Round the numbers based on the velocity
F32 velocity_mag_sq = gAgent.getVelocity().magVecSquared();
const F32 FLY_CUTOFF = 6.f; // meters/sec
const F32 FLY_CUTOFF_SQ = FLY_CUTOFF * FLY_CUTOFF;
const F32 WALK_CUTOFF = 1.5f; // meters/sec
const F32 WALK_CUTOFF_SQ = WALK_CUTOFF * WALK_CUTOFF;
if (velocity_mag_sq > FLY_CUTOFF_SQ)
{
pos_x -= pos_x % 4;
pos_y -= pos_y % 4;
}
else if (velocity_mag_sq > WALK_CUTOFF_SQ)
{
pos_x -= pos_x % 2;
pos_y -= pos_y % 2;
}
// create a default name and description for the landmark
std::string parcel_name = LLViewerParcelMgr::getInstance()->getAgentParcelName();
std::string region_name = region->getName();
std::string sim_access_string = region->getSimAccessString();
std::string buffer;
if( parcel_name.empty() )
{
// the parcel doesn't have a name
switch (fmt)
{
case LOCATION_FORMAT_LANDMARK:
buffer = llformat("%.100s", region_name.c_str());
break;
case LOCATION_FORMAT_NORMAL:
buffer = llformat("%s", region_name.c_str());
break;
case LOCATION_FORMAT_NO_COORDS:
buffer = llformat("%s%s%s",
region_name.c_str(),
sim_access_string.empty() ? "" : " - ",
sim_access_string.c_str());
break;
case LOCATION_FORMAT_NO_MATURITY:
buffer = llformat("%s (%d, %d, %d)",
region_name.c_str(),
pos_x, pos_y, pos_z);
break;
case LOCATION_FORMAT_FULL:
buffer = llformat("%s (%d, %d, %d)%s%s",
region_name.c_str(),
pos_x, pos_y, pos_z,
sim_access_string.empty() ? "" : " - ",
sim_access_string.c_str());
break;
}
}
else
{
// the parcel has a name, so include it in the landmark name
switch (fmt)
{
case LOCATION_FORMAT_LANDMARK:
buffer = llformat("%.100s", parcel_name.c_str());
break;
case LOCATION_FORMAT_NORMAL:
buffer = llformat("%s, %s", parcel_name.c_str(), region_name.c_str());
break;
case LOCATION_FORMAT_NO_MATURITY:
buffer = llformat("%s, %s (%d, %d, %d)",
parcel_name.c_str(),
region_name.c_str(),
pos_x, pos_y, pos_z);
break;
case LOCATION_FORMAT_NO_COORDS:
buffer = llformat("%s, %s%s%s",
parcel_name.c_str(),
region_name.c_str(),
sim_access_string.empty() ? "" : " - ",
sim_access_string.c_str());
break;
case LOCATION_FORMAT_FULL:
buffer = llformat("%s, %s (%d, %d, %d)%s%s",
parcel_name.c_str(),
region_name.c_str(),
pos_x, pos_y, pos_z,
sim_access_string.empty() ? "" : " - ",
sim_access_string.c_str());
break;
}
}
//.........这里部分代码省略.........
示例6: refresh
//.........这里部分代码省略.........
x += buttonRect.getWidth();
}
std::string location_name;
if (region)
{
const LLVector3& agent_pos_region = gAgent.getPositionAgent();
S32 pos_x = lltrunc( agent_pos_region.mV[VX] );
S32 pos_y = lltrunc( agent_pos_region.mV[VY] );
S32 pos_z = lltrunc( agent_pos_region.mV[VZ] );
// Round the numbers based on the velocity
LLVector3 agent_velocity = gAgent.getVelocity();
F32 velocity_mag_sq = agent_velocity.magVecSquared();
const F32 FLY_CUTOFF = 6.f; // meters/sec
const F32 FLY_CUTOFF_SQ = FLY_CUTOFF * FLY_CUTOFF;
const F32 WALK_CUTOFF = 1.5f; // meters/sec
const F32 WALK_CUTOFF_SQ = WALK_CUTOFF * WALK_CUTOFF;
if (velocity_mag_sq > FLY_CUTOFF_SQ)
{
pos_x -= pos_x % 4;
pos_y -= pos_y % 4;
}
else if (velocity_mag_sq > WALK_CUTOFF_SQ)
{
pos_x -= pos_x % 2;
pos_y -= pos_y % 2;
}
mRegionDetails.mTime = mTextTime->getText();
mRegionDetails.mBalance = mBalance;
mRegionDetails.mAccessString = region->getSimAccessString();
mRegionDetails.mPing = region->getNetDetailsForLCD();
if (parcel)
{
location_name = region->getName()
+ llformat(" %d, %d, %d (%s) - %s",
pos_x, pos_y, pos_z,
region->getSimAccessString().c_str(),
parcel->getName().c_str());
// keep these around for the LCD to use
mRegionDetails.mRegionName = region->getName();
mRegionDetails.mParcelName = parcel->getName();
mRegionDetails.mX = pos_x;
mRegionDetails.mY = pos_y;
mRegionDetails.mZ = pos_z;
mRegionDetails.mArea = parcel->getArea();
mRegionDetails.mForSale = parcel->getForSale();
mRegionDetails.mTraffic = LLViewerParcelMgr::getInstance()->getDwelling();
if (parcel->isPublic())
{
mRegionDetails.mOwner = "Public";
}
else
{
if (parcel->getIsGroupOwned())
{
if(!parcel->getGroupID().isNull())
{
gCacheName->getGroupName(parcel->getGroupID(), mRegionDetails.mOwner);
}
示例7: refresh
//.........这里部分代码省略.........
BOOL no_scripts = FALSE;
if((region
&& ((region->getRegionFlags() & REGION_FLAGS_SKIP_SCRIPTS)
|| (region->getRegionFlags() & REGION_FLAGS_ESTATE_SKIP_SCRIPTS)))
|| (parcel && !parcel->getAllowOtherScripts()))
{
no_scripts = TRUE;
}
mBtnScripts->setVisible( no_scripts );
if (no_scripts)
{
// No scripts
childGetRect( "scripts", buttonRect );
r.setOriginAndSize( x, y-GRAPHIC_FUDGE, buttonRect.getWidth(), buttonRect.getHeight());
mBtnScripts->setRect(r);
x += buttonRect.getWidth();
}
BOOL no_region_push = (region && region->getRestrictPushObject());
BOOL no_push = no_region_push || (parcel && parcel->getRestrictPushObject());
mBtnPush->setVisible( no_push );
if (no_push)
{
childGetRect( "restrictpush", buttonRect );
// No Push Zone
r.setOriginAndSize( x, y-GRAPHIC_FUDGE, buttonRect.getWidth(), buttonRect.getHeight());
mBtnPush->setRect(r);
x += buttonRect.getWidth();
}
BOOL canBuyLand = parcel
&& !parcel->isPublic()
&& gParcelMgr->canAgentBuyParcel(parcel, false);
mBtnBuyLand->setVisible(canBuyLand);
if (canBuyLand)
{
childGetRect( "buyland", buttonRect );
r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight());
mBtnBuyLand->setRect(r);
x += buttonRect.getWidth();
}
LLString location_name;
if (region)
{
const LLVector3& agent_pos_region = gAgent.getPositionAgent();
S32 pos_x = lltrunc( agent_pos_region.mV[VX] );
S32 pos_y = lltrunc( agent_pos_region.mV[VY] );
S32 pos_z = lltrunc( agent_pos_region.mV[VZ] );
// Round the numbers based on the velocity
LLVector3 agent_velocity = gAgent.getVelocity();
F32 velocity_mag_sq = agent_velocity.magVecSquared();
const F32 FLY_CUTOFF = 6.f; // meters/sec
const F32 FLY_CUTOFF_SQ = FLY_CUTOFF * FLY_CUTOFF;
const F32 WALK_CUTOFF = 1.5f; // meters/sec
const F32 WALK_CUTOFF_SQ = WALK_CUTOFF * WALK_CUTOFF;
if (velocity_mag_sq > FLY_CUTOFF_SQ)
{
pos_x -= pos_x % 4;
pos_y -= pos_y % 4;
}
else if (velocity_mag_sq > WALK_CUTOFF_SQ)
{
pos_x -= pos_x % 2;
pos_y -= pos_y % 2;
}
if (parcel && parcel->getName())
{
location_name = region->getName()
+ llformat(" %d, %d, %d (%s) - %s",
pos_x, pos_y, pos_z,
region->getSimAccessString(),
parcel->getName());
}
else
{
location_name = region->getName()
+ llformat(" %d, %d, %d (%s)",
pos_x, pos_y, pos_z,
region->getSimAccessString());
}
}
else
{
// no region
location_name = "(Unknown)";
}
mTextParcelName->setText(location_name);
// Adjust region name and parcel name
x += 4;
const S32 PARCEL_RIGHT = llmin(mTextTime->getRect().mLeft, mTextParcelName->getTextPixelWidth() + x + 5);
r.set(x+4, mRect.getHeight() - 2, PARCEL_RIGHT, 0);
mTextParcelName->setRect(r);
}
示例8: buildLocationString
BOOL LLAgentUI::buildLocationString(std::string& str, ELocationFormat fmt,const LLVector3& agent_pos_region)
{
LLViewerRegion* region = gAgent.getRegion();
LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
if (!region || !parcel) return FALSE;
S32 pos_x = S32(agent_pos_region.mV[VX]);
S32 pos_y = S32(agent_pos_region.mV[VY]);
S32 pos_z = S32(agent_pos_region.mV[VZ]);
// Round the numbers based on the velocity
F32 velocity_mag_sq = gAgent.getVelocity().magVecSquared();
const F32 FLY_CUTOFF = 6.f; // meters/sec
const F32 FLY_CUTOFF_SQ = FLY_CUTOFF * FLY_CUTOFF;
const F32 WALK_CUTOFF = 1.5f; // meters/sec
const F32 WALK_CUTOFF_SQ = WALK_CUTOFF * WALK_CUTOFF;
if (velocity_mag_sq > FLY_CUTOFF_SQ)
{
pos_x -= pos_x % 4;
pos_y -= pos_y % 4;
}
else if (velocity_mag_sq > WALK_CUTOFF_SQ)
{
pos_x -= pos_x % 2;
pos_y -= pos_y % 2;
}
// create a default name and description for the landmark
std::string parcel_name = LLViewerParcelMgr::getInstance()->getAgentParcelName();
std::string region_name = region->getName();
// [RLVa:KB] - Checked: 2010-04-04 (RLVa-1.2.0d) | Modified: RLVa-1.2.0d
// RELEASE-RLVa: [SL-2.0.0] Check ELocationFormat to make sure our switch still makes sense
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC))
{
parcel_name = RlvStrings::getString(RLV_STRING_HIDDEN_PARCEL);
region_name = RlvStrings::getString(RLV_STRING_HIDDEN_REGION);
if (LOCATION_FORMAT_NO_MATURITY == fmt)
fmt = LOCATION_FORMAT_LANDMARK;
else if (LOCATION_FORMAT_FULL == fmt)
fmt = LOCATION_FORMAT_NO_COORDS;
}
// [/RLVa:KB]
std::string sim_access_string = region->getSimAccessString();
std::string buffer;
if( parcel_name.empty() )
{
// the parcel doesn't have a name
switch (fmt)
{
case LOCATION_FORMAT_LANDMARK:
buffer = llformat("%.100s", region_name.c_str());
break;
case LOCATION_FORMAT_NORMAL:
buffer = llformat("%s", region_name.c_str());
break;
case LOCATION_FORMAT_NO_COORDS:
buffer = llformat("%s%s%s",
region_name.c_str(),
sim_access_string.empty() ? "" : " - ",
sim_access_string.c_str());
break;
case LOCATION_FORMAT_NO_MATURITY:
buffer = llformat("%s (%d, %d, %d)",
region_name.c_str(),
pos_x, pos_y, pos_z);
break;
case LOCATION_FORMAT_FULL:
buffer = llformat("%s (%d, %d, %d)%s%s",
region_name.c_str(),
pos_x, pos_y, pos_z,
sim_access_string.empty() ? "" : " - ",
sim_access_string.c_str());
break;
}
}
else
{
// the parcel has a name, so include it in the landmark name
switch (fmt)
{
case LOCATION_FORMAT_LANDMARK:
buffer = llformat("%.100s", parcel_name.c_str());
break;
case LOCATION_FORMAT_NORMAL:
buffer = llformat("%s, %s", parcel_name.c_str(), region_name.c_str());
break;
case LOCATION_FORMAT_NO_MATURITY:
buffer = llformat("%s, %s (%d, %d, %d)",
parcel_name.c_str(),
region_name.c_str(),
pos_x, pos_y, pos_z);
break;
case LOCATION_FORMAT_NO_COORDS:
buffer = llformat("%s, %s%s%s",
parcel_name.c_str(),
region_name.c_str(),
sim_access_string.empty() ? "" : " - ",
//.........这里部分代码省略.........
示例9: refresh
//.........这里部分代码省略.........
{
bool pf_disabled = !region->dynamicPathfindingEnabled();
mPFDirty->setVisible(!pf_disabled && mIsNavMeshDirty);
mPFDisabled->setVisible(pf_disabled);
if (LLView* pf_icon = pf_disabled ? mPFDisabled : mIsNavMeshDirty ? mPFDirty : NULL)
{
x += 6;
const LLRect& buttonRect(pf_icon->getRect());
r.setOriginAndSize(x, y, buttonRect.getWidth(), buttonRect.getHeight());
pf_icon->setRect(r);
x += buttonRect.getWidth();
}
}
if (parcel && !parcel->isPublic() && LLViewerParcelMgr::getInstance()->canAgentBuyParcel(parcel, false))
{
mBuyLand->setVisible(true);
//HACK: layout tweak until this is all xml
x += 9;
const LLRect& buttonRect(mBuyLand->getRect());
r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight());
mBuyLand->setRect(r);
x += buttonRect.getWidth();
}
else mBuyLand->setVisible(false);
std::string location_name;
if (region && parcel)
{
// [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a) | Modified: RLVa-1.0.0a
if (RlvActions::hasBehaviour(RLV_BHVR_SHOWLOC))
{
location_name = llformat("%s (%s) - %s",
RlvStrings::getString(RLV_STRING_HIDDEN_REGION).c_str(), region->getSimAccessString().c_str(),
RlvStrings::getString(RLV_STRING_HIDDEN).c_str());
}
else
// [/RLVa:KB]
if (!LLAgentUI::buildLocationString(location_name, LLAgentUI::LOCATION_FORMAT_FULL))
location_name = "???";
else
{
const std::string& grid(LFSimFeatureHandler::instance().gridName());
if (!grid.empty()) location_name += ", " + grid;
}
static const LLCachedControl<bool> show_channel("ShowSimChannel");
if (show_channel && !gLastVersionChannel.empty()) location_name += " - " + gLastVersionChannel;
}
else
{
// no region
location_name = "(Unknown)";
}
mTextParcelName->setText(location_name);
// x = right edge
// loop through: stat graphs, search btn, search text editor, money, buy money, clock
// adjust rect
// finally adjust parcel name rect
S32 new_right = getRect().getWidth();
static const LLCachedControl<bool> search_visible(gSavedSettings, "ShowSearchBar");
if (search_visible)
{