Merge viewer-eep
commit
e2c94f3454
|
|
@ -64,7 +64,6 @@ const LLUUID IMG_ALPHA_GRAD ("e97cf410-8e61-7005-ec06-629eba4cd1fb"); // VIEW
|
|||
const LLUUID IMG_ALPHA_GRAD_2D ("38b86f85-2575-52a9-a531-23108d8da837"); // VIEWER
|
||||
const LLUUID IMG_TRANSPARENT ("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"); // VIEWER
|
||||
|
||||
const LLUUID IMG_BLOOM1 ("3c59f7fe-9dc8-47f9-8aaf-a9dd1fbc3bef"); // VIEWER
|
||||
const LLUUID TERRAIN_DIRT_DETAIL ("0bc58228-74a0-7e83-89bc-5c23464bcec5"); // VIEWER
|
||||
const LLUUID TERRAIN_GRASS_DETAIL ("63338ede-0037-c4fd-855b-015d77112fc8"); // VIEWER
|
||||
const LLUUID TERRAIN_MOUNTAIN_DETAIL ("303cd381-8560-7579-23f1-f0a880799740"); // VIEWER
|
||||
|
|
|
|||
|
|
@ -205,7 +205,6 @@ LL_COMMON_API extern const LLUUID IMG_ALPHA_GRAD;
|
|||
LL_COMMON_API extern const LLUUID IMG_ALPHA_GRAD_2D;
|
||||
LL_COMMON_API extern const LLUUID IMG_TRANSPARENT;
|
||||
|
||||
LL_COMMON_API extern const LLUUID IMG_BLOOM1;
|
||||
LL_COMMON_API extern const LLUUID TERRAIN_DIRT_DETAIL;
|
||||
LL_COMMON_API extern const LLUUID TERRAIN_GRASS_DETAIL;
|
||||
LL_COMMON_API extern const LLUUID TERRAIN_MOUNTAIN_DETAIL;
|
||||
|
|
|
|||
|
|
@ -33,8 +33,11 @@
|
|||
#include "v3colorutil.h"
|
||||
|
||||
//=========================================================================
|
||||
static const F32 NIGHTTIME_ELEVATION = -8.0f; // degrees
|
||||
static const F32 NIGHTTIME_ELEVATION_SIN = (F32)sinf(NIGHTTIME_ELEVATION * DEG_TO_RAD);
|
||||
namespace {
|
||||
const F32 NIGHTTIME_ELEVATION = -8.0f; // degrees
|
||||
const F32 NIGHTTIME_ELEVATION_SIN = (F32)sinf(NIGHTTIME_ELEVATION * DEG_TO_RAD);
|
||||
const LLUUID IMG_BLOOM1("3c59f7fe-9dc8-47f9-8aaf-a9dd1fbc3bef");
|
||||
}
|
||||
|
||||
namespace {
|
||||
LLQuaternion convert_azimuth_and_altitude_to_quat(F32 azimuth, F32 altitude)
|
||||
|
|
@ -480,17 +483,17 @@ LLSettingsSky::validation_list_t LLSettingsSky::validationList()
|
|||
LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")),
|
||||
LLSD(LLSDArray(2.0f)(2.0f)(2.0f)("*")))));
|
||||
validation.push_back(Validator(SETTING_HAZE_DENSITY, false, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(4.0f)))));
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(5.0f)))));
|
||||
validation.push_back(Validator(SETTING_HAZE_HORIZON, false, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(1.0f)))));
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(5.0f)))));
|
||||
validation.push_back(Validator(SETTING_AMBIENT, false, LLSD::TypeArray,
|
||||
boost::bind(&Validator::verifyVectorMinMax, _1,
|
||||
LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")),
|
||||
LLSD(LLSDArray(3.0f)(3.0f)(3.0f)("*")))));
|
||||
validation.push_back(Validator(SETTING_DENSITY_MULTIPLIER, false, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(0.0009f)))));
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(2.0f)))));
|
||||
validation.push_back(Validator(SETTING_DISTANCE_MULTIPLIER, false, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(100.0f)))));
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(1000.0f)))));
|
||||
|
||||
|
||||
validation.push_back(Validator(SETTING_BLOOM_TEXTUREID, true, LLSD::TypeUUID));
|
||||
|
|
@ -501,17 +504,17 @@ LLSettingsSky::validation_list_t LLSettingsSky::validationList()
|
|||
validation.push_back(Validator(SETTING_CLOUD_POS_DENSITY1, true, LLSD::TypeArray,
|
||||
boost::bind(&Validator::verifyVectorMinMax, _1,
|
||||
LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")),
|
||||
LLSD(LLSDArray(1.68841f)(1.0f)(1.0f)("*")))));
|
||||
LLSD(LLSDArray(1.0f)(1.0f)(3.0f)("*")))));
|
||||
validation.push_back(Validator(SETTING_CLOUD_POS_DENSITY2, true, LLSD::TypeArray,
|
||||
boost::bind(&Validator::verifyVectorMinMax, _1,
|
||||
LLSD(LLSDArray(0.0f)(0.0f)(0.0f)("*")),
|
||||
LLSD(LLSDArray(1.68841f)(1.0f)(1.0f)("*")))));
|
||||
LLSD(LLSDArray(1.0f)(1.0f)(1.0f)("*")))));
|
||||
validation.push_back(Validator(SETTING_CLOUD_SCALE, true, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.001f)(0.999f)))));
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.001f)(3.0f)))));
|
||||
validation.push_back(Validator(SETTING_CLOUD_SCROLL_RATE, true, LLSD::TypeArray,
|
||||
boost::bind(&Validator::verifyVectorMinMax, _1,
|
||||
LLSD(LLSDArray(0.0f)(0.0f)),
|
||||
LLSD(LLSDArray(20.0f)(20.0f)))));
|
||||
LLSD(LLSDArray(-50.0f)(-50.0f)),
|
||||
LLSD(LLSDArray(50.0f)(50.0f)))));
|
||||
validation.push_back(Validator(SETTING_CLOUD_SHADOW, true, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(1.0f)))));
|
||||
validation.push_back(Validator(SETTING_CLOUD_TEXTUREID, false, LLSD::TypeUUID));
|
||||
|
|
@ -521,14 +524,14 @@ LLSettingsSky::validation_list_t LLSettingsSky::validationList()
|
|||
validation.push_back(Validator(SETTING_DOME_RADIUS, false, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(1000.0f)(2000.0f)))));
|
||||
validation.push_back(Validator(SETTING_GAMMA, true, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(10.0f)))));
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(20.0f)))));
|
||||
validation.push_back(Validator(SETTING_GLOW, true, LLSD::TypeArray,
|
||||
boost::bind(&Validator::verifyVectorMinMax, _1,
|
||||
LLSD(LLSDArray(0.2f)("*")(-2.5f)("*")),
|
||||
LLSD(LLSDArray(20.0f)("*")(0.0f)("*")))));
|
||||
LLSD(LLSDArray(0.2f)("*")(-10.0f)("*")),
|
||||
LLSD(LLSDArray(40.0f)("*")(10.0f)("*")))));
|
||||
|
||||
validation.push_back(Validator(SETTING_MAX_Y, true, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(4000.0f)))));
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(10000.0f)))));
|
||||
validation.push_back(Validator(SETTING_MOON_ROTATION, true, LLSD::TypeArray, &Validator::verifyQuaternionNormal));
|
||||
validation.push_back(Validator(SETTING_MOON_SCALE, false, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.25f)(20.0f))), LLSD::Real(1.0)));
|
||||
|
|
@ -645,7 +648,7 @@ LLSD LLSettingsSky::defaults(const LLSettingsBase::TrackPosition& position)
|
|||
dfltsetting[SETTING_CLOUD_POS_DENSITY1] = LLColor4(1.0000, 0.5260, 1.0000, 0.0).getValue();
|
||||
dfltsetting[SETTING_CLOUD_POS_DENSITY2] = LLColor4(1.0000, 0.5260, 1.0000, 0.0).getValue();
|
||||
dfltsetting[SETTING_CLOUD_SCALE] = LLSD::Real(0.4199);
|
||||
dfltsetting[SETTING_CLOUD_SCROLL_RATE] = LLSDArray(10.1999)(10.0109);
|
||||
dfltsetting[SETTING_CLOUD_SCROLL_RATE] = LLSDArray(0.0f)(0.0f);
|
||||
dfltsetting[SETTING_CLOUD_SHADOW] = LLSD::Real(0.2699);
|
||||
|
||||
dfltsetting[SETTING_DOME_OFFSET] = LLSD::Real(0.96f);
|
||||
|
|
@ -752,6 +755,7 @@ LLSD LLSettingsSky::translateLegacySettings(const LLSD& legacy)
|
|||
{
|
||||
LLVector2 cloud_scroll(legacy[SETTING_CLOUD_SCROLL_RATE]);
|
||||
|
||||
cloud_scroll -= LLVector2(10, 10);
|
||||
if (legacy.has(SETTING_LEGACY_ENABLE_CLOUD_SCROLL))
|
||||
{
|
||||
LLSD enabled = legacy[SETTING_LEGACY_ENABLE_CLOUD_SCROLL];
|
||||
|
|
|
|||
|
|
@ -213,7 +213,7 @@ LLSettingsWater::validation_list_t LLSettingsWater::validationList()
|
|||
// in deeply nested arrays like this [[[[[[[[[[v1,v2,v3]]]]]]]]]]
|
||||
|
||||
validation.push_back(Validator(SETTING_BLUR_MULTIPILER, true, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(0.16f)))));
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(-0.5f)(0.5f)))));
|
||||
validation.push_back(Validator(SETTING_FOG_COLOR, true, LLSD::TypeArray,
|
||||
boost::bind(&Validator::verifyVectorMinMax, _1,
|
||||
LLSD(LLSDArray(0.0f)(0.0f)(0.0f)(1.0f)),
|
||||
|
|
@ -232,17 +232,17 @@ LLSettingsWater::validation_list_t LLSettingsWater::validationList()
|
|||
LLSD(LLSDArray(0.0f)(0.0f)(0.0f)),
|
||||
LLSD(LLSDArray(10.0f)(10.0f)(10.0f)))));
|
||||
validation.push_back(Validator(SETTING_SCALE_ABOVE, true, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(1.0f)))));
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(3.0f)))));
|
||||
validation.push_back(Validator(SETTING_SCALE_BELOW, true, LLSD::TypeReal,
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(1.0f)))));
|
||||
boost::bind(&Validator::verifyFloatRange, _1, LLSD(LLSDArray(0.0f)(3.0f)))));
|
||||
validation.push_back(Validator(SETTING_WAVE1_DIR, true, LLSD::TypeArray,
|
||||
boost::bind(&Validator::verifyVectorMinMax, _1,
|
||||
LLSD(LLSDArray(-4.0f)(-4.0f)),
|
||||
LLSD(LLSDArray(4.0f)(4.0f)))));
|
||||
LLSD(LLSDArray(-20.0f)(-20.0f)),
|
||||
LLSD(LLSDArray(20.0f)(20.0f)))));
|
||||
validation.push_back(Validator(SETTING_WAVE2_DIR, true, LLSD::TypeArray,
|
||||
boost::bind(&Validator::verifyVectorMinMax, _1,
|
||||
LLSD(LLSDArray(-4.0f)(-4.0f)),
|
||||
LLSD(LLSDArray(4.0f)(4.0f)))));
|
||||
LLSD(LLSDArray(-20.0f)(-20.0f)),
|
||||
LLSD(LLSDArray(20.0f)(20.0f)))));
|
||||
}
|
||||
|
||||
return validation;
|
||||
|
|
|
|||
|
|
@ -149,6 +149,7 @@ LLFolderView::Params::Params()
|
|||
use_label_suffix("use_label_suffix"),
|
||||
allow_multiselect("allow_multiselect", true),
|
||||
show_empty_message("show_empty_message", true),
|
||||
suppress_folder_menu("suppress_folder_menu", false),
|
||||
use_ellipses("use_ellipses", false),
|
||||
options_menu("options_menu", "")
|
||||
{
|
||||
|
|
@ -167,6 +168,7 @@ LLFolderView::LLFolderView(const Params& p)
|
|||
mRenameItem( NULL ),
|
||||
mNeedsScroll( FALSE ),
|
||||
mUseLabelSuffix(p.use_label_suffix),
|
||||
mSuppressFolderMenu(p.suppress_folder_menu),
|
||||
mPinningSelectedItem(FALSE),
|
||||
mNeedsAutoSelect( FALSE ),
|
||||
mAutoSelectOverride(FALSE),
|
||||
|
|
@ -1497,10 +1499,13 @@ BOOL LLFolderView::handleRightMouseDown( S32 x, S32 y, MASK mask )
|
|||
|
||||
BOOL handled = childrenHandleRightMouseDown(x, y, mask) != NULL;
|
||||
S32 count = mSelectedItems.size();
|
||||
|
||||
LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get();
|
||||
if ( handled
|
||||
bool hide_folder_menu = mSuppressFolderMenu && isFolderSelected();
|
||||
if ((handled
|
||||
&& ( count > 0 && (hasVisibleChildren()) ) // show menu only if selected items are visible
|
||||
&& menu )
|
||||
&& menu ) &&
|
||||
!hide_folder_menu)
|
||||
{
|
||||
if (mCallbackRegistrar)
|
||||
{
|
||||
|
|
@ -1514,7 +1519,7 @@ BOOL LLFolderView::handleRightMouseDown( S32 x, S32 y, MASK mask )
|
|||
if (mCallbackRegistrar)
|
||||
{
|
||||
mCallbackRegistrar->popScope();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1927,6 +1932,20 @@ void LLFolderView::updateMenu()
|
|||
}
|
||||
}
|
||||
|
||||
bool LLFolderView::isFolderSelected()
|
||||
{
|
||||
selected_items_t::iterator item_iter;
|
||||
for (item_iter = mSelectedItems.begin(); item_iter != mSelectedItems.end(); ++item_iter)
|
||||
{
|
||||
LLFolderViewFolder* folder = dynamic_cast<LLFolderViewFolder*>(*item_iter);
|
||||
if (folder != NULL)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool LLFolderView::selectFirstItem()
|
||||
{
|
||||
for (folders_t::iterator iter = mFolders.begin();
|
||||
|
|
|
|||
|
|
@ -92,7 +92,8 @@ public:
|
|||
allow_multiselect,
|
||||
show_empty_message,
|
||||
use_ellipses,
|
||||
show_item_link_overlays;
|
||||
show_item_link_overlays,
|
||||
suppress_folder_menu;
|
||||
Mandatory<LLFolderViewModelInterface*> view_model;
|
||||
Optional<LLFolderViewGroupedItemModel*> grouped_item_model;
|
||||
Mandatory<std::string> options_menu;
|
||||
|
|
@ -264,6 +265,8 @@ protected:
|
|||
|
||||
void closeRenamer( void );
|
||||
|
||||
bool isFolderSelected();
|
||||
|
||||
bool selectFirstItem();
|
||||
bool selectLastItem();
|
||||
|
||||
|
|
@ -287,7 +290,8 @@ protected:
|
|||
mDragAndDropThisFrame,
|
||||
mShowItemLinkOverlays,
|
||||
mShowSelectionContext,
|
||||
mShowSingleSelection;
|
||||
mShowSingleSelection,
|
||||
mSuppressFolderMenu;
|
||||
|
||||
// Renaming variables and methods
|
||||
LLFolderViewItem* mRenameItem; // The item currently being renamed
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ void setAdditiveColor(vec3 v)
|
|||
{
|
||||
// SL-1491 clamp additive term to something reasonable to prevent
|
||||
// lens flares over non-reflective surfaces
|
||||
v = clamp(v, vec3(0), vec3(0.2));
|
||||
v = clamp(v, vec3(0), vec3(0.8));
|
||||
additive_color = v;
|
||||
vary_AdditiveColor = v;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -880,7 +880,7 @@ void LLEnvironment::updateCloudScroll()
|
|||
|
||||
if (mCurrentEnvironment->getSky() && !mCloudScrollPaused)
|
||||
{
|
||||
LLVector2 cloud_delta = static_cast<F32>(delta_t)* (mCurrentEnvironment->getSky()->getCloudScrollRate() - LLVector2(10.0, 10.0)) / 100.0;
|
||||
LLVector2 cloud_delta = static_cast<F32>(delta_t)* (mCurrentEnvironment->getSky()->getCloudScrollRate()) / 100.0;
|
||||
mCloudScrollDelta += cloud_delta;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@ BOOL LLFloaterEditExtDayCycle::postBuild()
|
|||
mFlyoutControl->setAction([this](LLUICtrl *ctrl, const LLSD &data) { onButtonApply(ctrl, data); });
|
||||
|
||||
getChild<LLButton>(BTN_CANCEL, true)->setCommitCallback([this](LLUICtrl *ctrl, const LLSD &data) { onClickCloseBtn(); });
|
||||
mTimeSlider->setCommitCallback([this](LLUICtrl *ctrl, const LLSD &data) { onTimeSliderMoved(); });
|
||||
mTimeSlider->setCommitCallback([this](LLUICtrl *ctrl, const LLSD &data) { onTimeSliderCallback(); });
|
||||
mAddFrameButton->setCommitCallback([this](LLUICtrl *ctrl, const LLSD &data) { onAddTrack(); });
|
||||
mDeleteFrameButton->setCommitCallback([this](LLUICtrl *ctrl, const LLSD &data) { onRemoveTrack(); });
|
||||
mImportButton->setCommitCallback([this](LLUICtrl *, const LLSD &){ onButtonImport(); });
|
||||
|
|
@ -517,7 +517,9 @@ void LLFloaterEditExtDayCycle::onButtonApply(LLUICtrl *ctrl, const LLSD &data)
|
|||
}
|
||||
else if (ctrl_action == ACTION_SAVEAS)
|
||||
{
|
||||
doApplyCreateNewInventory(dayclone);
|
||||
LLSD args;
|
||||
args["DESC"] = dayclone->getName();
|
||||
LLNotificationsUtil::add("SaveSettingAs", args, LLSD(), boost::bind(&LLFloaterEditExtDayCycle::onSaveAsCommit, this, _1, _2, dayclone));
|
||||
}
|
||||
else if ((ctrl_action == ACTION_APPLY_LOCAL) ||
|
||||
(ctrl_action == ACTION_APPLY_PARCEL) ||
|
||||
|
|
@ -535,6 +537,16 @@ void LLFloaterEditExtDayCycle::onButtonApply(LLUICtrl *ctrl, const LLSD &data)
|
|||
}
|
||||
}
|
||||
|
||||
void LLFloaterEditExtDayCycle::onSaveAsCommit(const LLSD& notification, const LLSD& response, const LLSettingsDay::ptr_t &day)
|
||||
{
|
||||
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
|
||||
if (0 == option)
|
||||
{
|
||||
std::string settings_name = response["message"].asString();
|
||||
LLStringUtil::trim(settings_name);
|
||||
doApplyCreateNewInventory(day, settings_name);
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterEditExtDayCycle::onClickCloseBtn(bool app_quitting /*= false*/)
|
||||
{
|
||||
|
|
@ -786,8 +798,9 @@ void LLFloaterEditExtDayCycle::checkAndConfirmSettingsLoss(on_confirm_fn cb)
|
|||
}
|
||||
}
|
||||
|
||||
void LLFloaterEditExtDayCycle::onTimeSliderMoved()
|
||||
void LLFloaterEditExtDayCycle::onTimeSliderCallback()
|
||||
{
|
||||
stopPlay();
|
||||
selectFrame(mTimeSlider->getCurSliderValue(), LLSettingsDay::DEFAULT_FRAME_SLOP_FACTOR);
|
||||
}
|
||||
|
||||
|
|
@ -1231,19 +1244,19 @@ void LLFloaterEditExtDayCycle::reblendSettings()
|
|||
mWaterBlender->setPosition(position);
|
||||
}
|
||||
|
||||
void LLFloaterEditExtDayCycle::doApplyCreateNewInventory(const LLSettingsDay::ptr_t &day)
|
||||
void LLFloaterEditExtDayCycle::doApplyCreateNewInventory(const LLSettingsDay::ptr_t &day, std::string settings_name)
|
||||
{
|
||||
// This method knows what sort of settings object to create.
|
||||
LLUUID parent_id = mInventoryItem ? mInventoryItem->getParentUUID() : gInventory.findCategoryUUIDForType(LLFolderType::FT_SETTINGS);
|
||||
|
||||
LLSettingsVOBase::createInventoryItem(day, parent_id,
|
||||
LLSettingsVOBase::createInventoryItem(day, parent_id, settings_name,
|
||||
[this](LLUUID asset_id, LLUUID inventory_id, LLUUID, LLSD results) { onInventoryCreated(asset_id, inventory_id, results); });
|
||||
}
|
||||
|
||||
void LLFloaterEditExtDayCycle::doApplyUpdateInventory(const LLSettingsDay::ptr_t &day)
|
||||
{
|
||||
if (mInventoryId.isNull())
|
||||
LLSettingsVOBase::createInventoryItem(day, gInventory.findCategoryUUIDForType(LLFolderType::FT_SETTINGS),
|
||||
LLSettingsVOBase::createInventoryItem(day, gInventory.findCategoryUUIDForType(LLFolderType::FT_SETTINGS), std::string(),
|
||||
[this](LLUUID asset_id, LLUUID inventory_id, LLUUID, LLSD results) { onInventoryCreated(asset_id, inventory_id, results); });
|
||||
else
|
||||
LLSettingsVOBase::updateInventoryItem(day, mInventoryId,
|
||||
|
|
|
|||
|
|
@ -108,8 +108,9 @@ private:
|
|||
void onCommitName(class LLLineEditor* caller, void* user_data);
|
||||
void onTrackSelectionCallback(const LLSD& user_data);
|
||||
void onPlayActionCallback(const LLSD& user_data);
|
||||
// time slider moved
|
||||
void onTimeSliderMoved();
|
||||
void onSaveAsCommit(const LLSD& notification, const LLSD& response, const LLSettingsDay::ptr_t &day);
|
||||
// time slider clicked
|
||||
void onTimeSliderCallback();
|
||||
// a frame moved or frame selection changed
|
||||
void onFrameSliderCallback(const LLSD &);
|
||||
void onFrameSliderDoubleClick(S32 x, S32 y, MASK mask);
|
||||
|
|
@ -137,7 +138,7 @@ private:
|
|||
|
||||
void doImportFromDisk();
|
||||
void loadSettingFromFile(const std::vector<std::string>& filenames);
|
||||
void doApplyCreateNewInventory(const LLSettingsDay::ptr_t &day);
|
||||
void doApplyCreateNewInventory(const LLSettingsDay::ptr_t &day, std::string settings_name);
|
||||
void doApplyUpdateInventory(const LLSettingsDay::ptr_t &day);
|
||||
void doApplyEnvironment(const std::string &where, const LLSettingsDay::ptr_t &day);
|
||||
void doApplyCommit(LLSettingsDay::ptr_t day);
|
||||
|
|
|
|||
|
|
@ -355,7 +355,9 @@ void LLFloaterFixedEnvironment::onButtonApply(LLUICtrl *ctrl, const LLSD &data)
|
|||
}
|
||||
else if (ctrl_action == ACTION_SAVEAS)
|
||||
{
|
||||
doApplyCreateNewInventory();
|
||||
LLSD args;
|
||||
args["DESC"] = mSettings->getName();
|
||||
LLNotificationsUtil::add("SaveSettingAs", args, LLSD(), boost::bind(&LLFloaterFixedEnvironment::onSaveAsCommit, this, _1, _2));
|
||||
}
|
||||
else if ((ctrl_action == ACTION_APPLY_LOCAL) ||
|
||||
(ctrl_action == ACTION_APPLY_PARCEL) ||
|
||||
|
|
@ -369,6 +371,17 @@ void LLFloaterFixedEnvironment::onButtonApply(LLUICtrl *ctrl, const LLSD &data)
|
|||
}
|
||||
}
|
||||
|
||||
void LLFloaterFixedEnvironment::onSaveAsCommit(const LLSD& notification, const LLSD& response)
|
||||
{
|
||||
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
|
||||
if (0 == option)
|
||||
{
|
||||
std::string settings_name = response["message"].asString();
|
||||
LLStringUtil::trim(settings_name);
|
||||
doApplyCreateNewInventory(settings_name);
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterFixedEnvironment::onClickCloseBtn(bool app_quitting)
|
||||
{
|
||||
if (!app_quitting)
|
||||
|
|
@ -382,11 +395,11 @@ void LLFloaterFixedEnvironment::onButtonLoad()
|
|||
checkAndConfirmSettingsLoss([this](){ doSelectFromInventory(); });
|
||||
}
|
||||
|
||||
void LLFloaterFixedEnvironment::doApplyCreateNewInventory()
|
||||
void LLFloaterFixedEnvironment::doApplyCreateNewInventory(std::string settings_name)
|
||||
{
|
||||
LLUUID parent_id = mInventoryItem ? mInventoryItem->getParentUUID() : gInventory.findCategoryUUIDForType(LLFolderType::FT_SETTINGS);
|
||||
// This method knows what sort of settings object to create.
|
||||
LLSettingsVOBase::createInventoryItem(mSettings, parent_id,
|
||||
LLSettingsVOBase::createInventoryItem(mSettings, parent_id, settings_name,
|
||||
[this](LLUUID asset_id, LLUUID inventory_id, LLUUID, LLSD results) { onInventoryCreated(asset_id, inventory_id, results); });
|
||||
}
|
||||
|
||||
|
|
@ -396,7 +409,7 @@ void LLFloaterFixedEnvironment::doApplyUpdateInventory()
|
|||
if (mInventoryId.isNull())
|
||||
{
|
||||
LL_WARNS("LAPRAS") << "Inventory ID is NULL. Creating New!!!" << LL_ENDL;
|
||||
LLSettingsVOBase::createInventoryItem(mSettings, gInventory.findCategoryUUIDForType(LLFolderType::FT_SETTINGS),
|
||||
LLSettingsVOBase::createInventoryItem(mSettings, gInventory.findCategoryUUIDForType(LLFolderType::FT_SETTINGS), std::string(),
|
||||
[this](LLUUID asset_id, LLUUID inventory_id, LLUUID, LLSD results) { onInventoryCreated(asset_id, inventory_id, results); });
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ protected:
|
|||
LLSettingsBase::ptr_t mSettings;
|
||||
|
||||
virtual void doImportFromDisk() = 0;
|
||||
virtual void doApplyCreateNewInventory();
|
||||
virtual void doApplyCreateNewInventory(std::string settings_name);
|
||||
virtual void doApplyUpdateInventory();
|
||||
virtual void doApplyEnvironment(const std::string &where);
|
||||
void doCloseInventoryFloater(bool quitting = false);
|
||||
|
|
@ -111,6 +111,7 @@ protected:
|
|||
void onPanelDirtyFlagChanged(bool);
|
||||
|
||||
virtual void onClickCloseBtn(bool app_quitting = false) override;
|
||||
void onSaveAsCommit(const LLSD& notification, const LLSD& response);
|
||||
|
||||
private:
|
||||
void onNameChanged(const std::string &name);
|
||||
|
|
|
|||
|
|
@ -3559,7 +3559,6 @@ void LLPanelLandEnvironment::refresh()
|
|||
}
|
||||
|
||||
LLPanelEnvironmentInfo::refresh();
|
||||
getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setVisible(FALSE);
|
||||
}
|
||||
|
||||
void LLPanelLandEnvironment::refreshFromSource()
|
||||
|
|
|
|||
|
|
@ -151,6 +151,7 @@ LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) :
|
|||
mAllowMultiSelect(p.allow_multi_select),
|
||||
mShowItemLinkOverlays(p.show_item_link_overlays),
|
||||
mShowEmptyMessage(p.show_empty_message),
|
||||
mSuppressFolderMenu(p.suppress_folder_menu),
|
||||
mViewsInitialized(false),
|
||||
mInvFVBridgeBuilder(NULL),
|
||||
mInventoryViewModel(p.name),
|
||||
|
|
@ -203,6 +204,7 @@ LLFolderView * LLInventoryPanel::createFolderRoot(LLUUID root_id )
|
|||
p.use_label_suffix = mParams.use_label_suffix;
|
||||
p.allow_multiselect = mAllowMultiSelect;
|
||||
p.show_empty_message = mShowEmptyMessage;
|
||||
p.suppress_folder_menu = mSuppressFolderMenu;
|
||||
p.show_item_link_overlays = mShowItemLinkOverlays;
|
||||
p.root = NULL;
|
||||
p.allow_drop = mParams.allow_drop_on_root;
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@ public:
|
|||
Optional<StartFolder> start_folder;
|
||||
Optional<bool> use_label_suffix;
|
||||
Optional<bool> show_empty_message;
|
||||
Optional<bool> suppress_folder_menu;
|
||||
Optional<bool> show_root_folder;
|
||||
Optional<bool> allow_drop_on_root;
|
||||
Optional<bool> use_marketplace_folders;
|
||||
|
|
@ -111,6 +112,7 @@ public:
|
|||
inventory("", &gInventory),
|
||||
allow_multi_select("allow_multi_select", true),
|
||||
show_item_link_overlays("show_item_link_overlays", false),
|
||||
suppress_folder_menu("suppress_folder_menu", false),
|
||||
filter("filter"),
|
||||
start_folder("start_folder"),
|
||||
use_label_suffix("use_label_suffix", true),
|
||||
|
|
@ -270,6 +272,7 @@ protected:
|
|||
bool mAllowMultiSelect;
|
||||
bool mShowItemLinkOverlays; // Shows link graphic over inventory item icons
|
||||
bool mShowEmptyMessage;
|
||||
bool mSuppressFolderMenu;
|
||||
|
||||
LLHandle<LLFolderView> mFolderRoot;
|
||||
LLScrollContainer* mScroller;
|
||||
|
|
|
|||
|
|
@ -96,8 +96,6 @@ namespace
|
|||
const F32 SLIDER_SCALE_BLUE_HORIZON_DENSITY(2.0f);
|
||||
const F32 SLIDER_SCALE_GLOW_R(20.0f);
|
||||
const F32 SLIDER_SCALE_GLOW_B(-5.0f);
|
||||
|
||||
const LLVector2 CLOUD_SCROLL_ADJUST(10, 10);
|
||||
}
|
||||
|
||||
static LLPanelInjector<LLPanelSettingsSkyAtmosTab> t_settings_atmos("panel_settings_atmos");
|
||||
|
|
@ -300,7 +298,6 @@ void LLPanelSettingsSkyCloudTab::refresh()
|
|||
getChild<LLUICtrl>(FIELD_SKY_CLOUD_SCALE)->setValue(mSkySettings->getCloudScale());
|
||||
|
||||
LLVector2 cloudScroll(mSkySettings->getCloudScrollRate());
|
||||
cloudScroll -= CLOUD_SCROLL_ADJUST;
|
||||
getChild<LLUICtrl>(FIELD_SKY_CLOUD_SCROLL_XY)->setValue(cloudScroll.getValue());
|
||||
|
||||
getChild<LLTextureCtrl>(FIELD_SKY_CLOUD_MAP)->setValue(mSkySettings->getCloudNoiseTextureId());
|
||||
|
|
@ -340,7 +337,6 @@ void LLPanelSettingsSkyCloudTab::onCloudScaleChanged()
|
|||
void LLPanelSettingsSkyCloudTab::onCloudScrollChanged()
|
||||
{
|
||||
LLVector2 scroll(getChild<LLUICtrl>(FIELD_SKY_CLOUD_SCROLL_XY)->getValue());
|
||||
scroll += CLOUD_SCROLL_ADJUST;
|
||||
mSkySettings->setCloudScrollRate(scroll);
|
||||
setIsDirty();
|
||||
}
|
||||
|
|
@ -356,7 +352,7 @@ void LLPanelSettingsSkyCloudTab::onCloudDensityChanged()
|
|||
LLColor3 density(getChild<LLUICtrl>(FIELD_SKY_CLOUD_DENSITY_X)->getValue().asReal(),
|
||||
getChild<LLUICtrl>(FIELD_SKY_CLOUD_DENSITY_Y)->getValue().asReal(),
|
||||
getChild<LLUICtrl>(FIELD_SKY_CLOUD_DENSITY_D)->getValue().asReal());
|
||||
|
||||
|
||||
mSkySettings->setCloudPosDensity1(density);
|
||||
setIsDirty();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ const std::string LLPanelEnvironmentInfo::BTN_EDIT("btn_edit");
|
|||
const std::string LLPanelEnvironmentInfo::SLD_DAYLENGTH("sld_day_length");
|
||||
const std::string LLPanelEnvironmentInfo::SLD_DAYOFFSET("sld_day_offset");
|
||||
const std::string LLPanelEnvironmentInfo::SLD_ALTITUDES("sld_altitudes");
|
||||
const std::string LLPanelEnvironmentInfo::ICN_GROUND("icon_ground");
|
||||
const std::string LLPanelEnvironmentInfo::CHK_ALLOWOVERRIDE("chk_allow_override");
|
||||
const std::string LLPanelEnvironmentInfo::BTN_APPLY("btn_apply");
|
||||
const std::string LLPanelEnvironmentInfo::BTN_CANCEL("btn_cancel");
|
||||
|
|
@ -94,12 +95,8 @@ const U32 LLPanelEnvironmentInfo::DIRTY_FLAG_MASK(
|
|||
LLPanelEnvironmentInfo::DIRTY_FLAG_DAYOFFSET |
|
||||
LLPanelEnvironmentInfo::DIRTY_FLAG_ALTITUDES);
|
||||
|
||||
#if 0
|
||||
// Because the OSX is Very cranky when I don't use a variable.
|
||||
const U32 ALTITUDE_SLIDER_COUNT = 3;
|
||||
|
||||
#endif
|
||||
|
||||
const std::string alt_sliders[] = {
|
||||
"sld1",
|
||||
"sld2",
|
||||
|
|
@ -235,6 +232,8 @@ void LLPanelEnvironmentInfo::refresh()
|
|||
|
||||
udpateApparentTimeOfDay();
|
||||
|
||||
updateEditFloater(mCurrentEnvironment, canEdit());
|
||||
|
||||
#if 1
|
||||
// hiding the controls until Rider can get the simulator code to adjust altitudes done.
|
||||
getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setVisible(FALSE);
|
||||
|
|
@ -249,6 +248,7 @@ void LLPanelEnvironmentInfo::refresh()
|
|||
updateAltLabel(alt_labels[idx], idx + 2, altitudes[idx+1]);
|
||||
mAltitudes[alt_sliders[idx]] = AltitudeData(idx+1, idx, altitudes[idx+1]);
|
||||
}
|
||||
readjustAltLabels();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -314,14 +314,14 @@ LLFloaterEditExtDayCycle * LLPanelEnvironmentInfo::getEditFloater(bool create)
|
|||
}
|
||||
|
||||
|
||||
void LLPanelEnvironmentInfo::updateEditFloater(const LLEnvironment::EnvironmentInfo::ptr_t &nextenv)
|
||||
void LLPanelEnvironmentInfo::updateEditFloater(const LLEnvironment::EnvironmentInfo::ptr_t &nextenv, bool enable)
|
||||
{
|
||||
LLFloaterEditExtDayCycle *dayeditor(getEditFloater(false));
|
||||
|
||||
if (!dayeditor)
|
||||
return;
|
||||
|
||||
if (!nextenv || !nextenv->mDayCycle)
|
||||
if (!nextenv || !nextenv->mDayCycle || !enable)
|
||||
{
|
||||
if (mCommitConnection.connected())
|
||||
mCommitConnection.disconnect();
|
||||
|
|
@ -333,7 +333,10 @@ void LLPanelEnvironmentInfo::updateEditFloater(const LLEnvironment::EnvironmentI
|
|||
}
|
||||
else
|
||||
{
|
||||
/*TODO: Swap in new day to edit?*/
|
||||
// Ignore dirty
|
||||
// If parcel selection changed whatever we do except saving to inventory with
|
||||
// old settings will be invalid.
|
||||
dayeditor->setEditDayCycle(nextenv->mDayCycle);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -363,8 +366,9 @@ bool LLPanelEnvironmentInfo::setControlsEnabled(bool enabled)
|
|||
getChild<LLUICtrl>(PNL_SETTINGS)->setVisible(false);
|
||||
getChild<LLUICtrl>(PNL_BUTTONS)->setVisible(false);
|
||||
getChild<LLUICtrl>(PNL_DISABLED)->setVisible(true);
|
||||
getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setVisible(FALSE);
|
||||
|
||||
updateEditFloater(mCurrentEnvironment);
|
||||
updateEditFloater(mCurrentEnvironment, false);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
@ -372,6 +376,13 @@ bool LLPanelEnvironmentInfo::setControlsEnabled(bool enabled)
|
|||
getChild<LLUICtrl>(PNL_BUTTONS)->setVisible(true);
|
||||
getChild<LLUICtrl>(PNL_DISABLED)->setVisible(false);
|
||||
|
||||
#if 1
|
||||
// hiding the controls until Rider can get the simulator code to adjust altitudes done.
|
||||
getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setVisible(FALSE);
|
||||
#else
|
||||
getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setVisible(isRegion());
|
||||
#endif
|
||||
|
||||
S32 rdo_selection = getChild<LLRadioGroup>(RDG_ENVIRONMENT_SELECT)->getSelectedIndex();
|
||||
|
||||
getChild<LLUICtrl>(RDG_ENVIRONMENT_SELECT)->setEnabled(enabled);
|
||||
|
|
@ -383,6 +394,7 @@ bool LLPanelEnvironmentInfo::setControlsEnabled(bool enabled)
|
|||
getChild<LLUICtrl>(BTN_EDIT)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(SLD_DAYLENGTH)->setEnabled(enabled && (rdo_selection != 0) && !is_legacy);
|
||||
getChild<LLUICtrl>(SLD_DAYOFFSET)->setEnabled(enabled && (rdo_selection != 0) && !is_legacy);
|
||||
getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setEnabled(enabled && isRegion() && !is_legacy);
|
||||
getChild<LLUICtrl>(CHK_ALLOWOVERRIDE)->setEnabled(enabled && isRegion() && !is_legacy);
|
||||
getChild<LLUICtrl>(BTN_APPLY)->setEnabled(enabled && (mDirtyFlag != 0));
|
||||
getChild<LLUICtrl>(BTN_CANCEL)->setEnabled(enabled && (mDirtyFlag != 0));
|
||||
|
|
@ -426,10 +438,10 @@ void LLPanelEnvironmentInfo::updateAltLabel(const std::string &alt_name, U32 sky
|
|||
{
|
||||
LLMultiSliderCtrl *sld = getChild<LLMultiSliderCtrl>(SLD_ALTITUDES);
|
||||
LLRect sld_rect = sld->getRect();
|
||||
U32 sld_range = sld_rect.getHeight();
|
||||
U32 sld_bottom = sld_rect.mBottom;
|
||||
U32 sld_offset = sld_rect.getWidth(); // Roughly identical to thumb's width in slider.
|
||||
U32 pos = (sld_range - sld_offset) * ((alt_value - 100) / (4000 - 100));
|
||||
S32 sld_range = sld_rect.getHeight();
|
||||
S32 sld_bottom = sld_rect.mBottom;
|
||||
S32 sld_offset = sld_rect.getWidth(); // Roughly identical to thumb's width in slider.
|
||||
S32 pos = (sld_range - sld_offset) * ((alt_value - 100) / (4000 - 100));
|
||||
|
||||
// get related text box
|
||||
LLTextBox* text = getChild<LLTextBox>(alt_name);
|
||||
|
|
@ -437,7 +449,7 @@ void LLPanelEnvironmentInfo::updateAltLabel(const std::string &alt_name, U32 sky
|
|||
{
|
||||
// move related text box
|
||||
LLRect rect = text->getRect();
|
||||
U32 height = rect.getHeight();
|
||||
S32 height = rect.getHeight();
|
||||
rect.mBottom = sld_bottom + (sld_offset / 2 + 1) + pos - (height / 2);
|
||||
rect.mTop = rect.mBottom + height;
|
||||
text->setRect(rect);
|
||||
|
|
@ -453,6 +465,59 @@ void LLPanelEnvironmentInfo::updateAltLabel(const std::string &alt_name, U32 sky
|
|||
}
|
||||
}
|
||||
|
||||
void LLPanelEnvironmentInfo::readjustAltLabels()
|
||||
{
|
||||
// Restore ground label position
|
||||
LLView* icon = getChild<LLView>(ICN_GROUND);
|
||||
LLTextBox* text = getChild<LLTextBox>(alt_labels[ALTITUDE_SLIDER_COUNT]); // one more field then sliders
|
||||
LLRect ground_text_rect = text->getRect();
|
||||
LLRect icon_rect = icon->getRect();
|
||||
S32 height = ground_text_rect.getHeight();
|
||||
ground_text_rect.mBottom = icon_rect.mBottom + (icon_rect.getHeight()/2) - (height/2);
|
||||
ground_text_rect.mTop = ground_text_rect.mBottom + height;
|
||||
text->setRect(ground_text_rect);
|
||||
|
||||
// Re-adjust all labels
|
||||
// Very simple "adjust after the fact" method
|
||||
// Note: labels are unordered, labels are 1 above sliders due to 'ground'
|
||||
|
||||
for (U32 i = 0; i < ALTITUDE_SLIDER_COUNT; i++)
|
||||
{
|
||||
LLTextBox* text_cmp = getChild<LLTextBox>(alt_labels[i]);
|
||||
|
||||
for (U32 j = i + 1; j <= ALTITUDE_SLIDER_COUNT; j++)
|
||||
{
|
||||
LLTextBox* text_intr = getChild<LLTextBox>(alt_labels[j]);
|
||||
if (text_cmp && text_intr)
|
||||
{
|
||||
LLRect cmp_rect = text_cmp->getRect();
|
||||
LLRect intr_rect = text_intr->getRect();
|
||||
S32 shift = 0;
|
||||
if (cmp_rect.mBottom <= intr_rect.mTop && cmp_rect.mBottom >= intr_rect.mBottom)
|
||||
{
|
||||
// Aproximate shift
|
||||
// We probably will need more cycle runs over all labels to get accurate one
|
||||
// At the moment single cycle should do since we have too little elements to do something complicated
|
||||
shift = (cmp_rect.mBottom - intr_rect.mTop) / 2;
|
||||
}
|
||||
else if (cmp_rect.mTop >= intr_rect.mBottom && cmp_rect.mTop <= intr_rect.mTop)
|
||||
{
|
||||
// Aproximate shift
|
||||
shift = (cmp_rect.mTop - intr_rect.mBottom) / 2;
|
||||
}
|
||||
if (shift != 0)
|
||||
{
|
||||
cmp_rect.translate(0, -shift);
|
||||
text_cmp->setRect(cmp_rect);
|
||||
|
||||
intr_rect.translate(0, shift);
|
||||
text_intr->setRect(intr_rect);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLPanelEnvironmentInfo::onSwitchDefaultSelection()
|
||||
{
|
||||
bool can_edit = canEdit();
|
||||
|
|
@ -491,51 +556,33 @@ void LLPanelEnvironmentInfo::onAltSliderCallback(LLUICtrl *cntrl, const LLSD &da
|
|||
LLMultiSliderCtrl *sld = (LLMultiSliderCtrl *)cntrl;
|
||||
std::string sld_name = sld->getCurSlider();
|
||||
F32 sld_value = sld->getCurSliderValue();
|
||||
U32 alt_index = 1;
|
||||
|
||||
mAltitudes[sld_name].mAltitude = sld_value;
|
||||
|
||||
// find index of sky layer/altitude
|
||||
altitudes_data_t::iterator iter = mAltitudes.begin();
|
||||
// update all labels since we could have jumped multiple and we will need to readjust
|
||||
// (or sort by altitude, too little elements, so I didn't bother with efficiency)
|
||||
altitudes_data_t::iterator end = mAltitudes.end();
|
||||
while (iter!=end)
|
||||
altitudes_data_t::iterator iter = mAltitudes.begin();
|
||||
altitudes_data_t::iterator iter2;
|
||||
U32 new_index;
|
||||
while (iter != end)
|
||||
{
|
||||
if (sld_value > iter->second.mAltitude)
|
||||
iter2 = mAltitudes.begin();
|
||||
new_index = 1;
|
||||
while (iter2 != end)
|
||||
{
|
||||
alt_index++;
|
||||
if (iter->second.mAltitude > iter2->second.mAltitude)
|
||||
{
|
||||
new_index++;
|
||||
}
|
||||
iter2++;
|
||||
}
|
||||
iter->second.mAltitudeIndex = new_index;
|
||||
updateAltLabel(alt_labels[iter->second.mLabelIndex], iter->second.mAltitudeIndex + 1, iter->second.mAltitude);
|
||||
iter++;
|
||||
}
|
||||
|
||||
if (mAltitudes[sld_name].mAltitudeIndex != alt_index)
|
||||
{
|
||||
// update all labels since we could have jumped multiple
|
||||
// (or sort by altitude, too little elements, so I didn't bother with efficiency)
|
||||
altitudes_data_t::iterator iter = mAltitudes.begin();
|
||||
altitudes_data_t::iterator iter2;
|
||||
U32 new_index;
|
||||
while (iter != end)
|
||||
{
|
||||
iter2 = mAltitudes.begin();
|
||||
new_index = 1;
|
||||
while (iter2 != end)
|
||||
{
|
||||
if (iter->second.mAltitude > iter2->second.mAltitude)
|
||||
{
|
||||
new_index++;
|
||||
}
|
||||
iter2++;
|
||||
}
|
||||
iter->second.mAltitudeIndex = new_index;
|
||||
updateAltLabel(alt_labels[iter->second.mLabelIndex], iter->second.mAltitudeIndex + 1, iter->second.mAltitude);
|
||||
iter++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
updateAltLabel(alt_labels[mAltitudes[sld_name].mLabelIndex], alt_index + 1, sld_value);
|
||||
}
|
||||
|
||||
readjustAltLabels();
|
||||
setDirtyFlag(DIRTY_FLAG_ALTITUDES);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ protected:
|
|||
static const std::string SLD_DAYLENGTH;
|
||||
static const std::string SLD_DAYOFFSET;
|
||||
static const std::string SLD_ALTITUDES;
|
||||
static const std::string ICN_GROUND;
|
||||
static const std::string CHK_ALLOWOVERRIDE;
|
||||
static const std::string BTN_APPLY;
|
||||
static const std::string BTN_CANCEL;
|
||||
|
|
@ -104,6 +105,7 @@ protected:
|
|||
bool getIsDirtyFlag(U32 flag) const { return ((mDirtyFlag & flag) != 0); }
|
||||
U32 getDirtyFlag() const { return mDirtyFlag; }
|
||||
void updateAltLabel(const std::string &alt_name, U32 sky_index, F32 alt_value);
|
||||
void readjustAltLabels();
|
||||
|
||||
void onSwitchDefaultSelection();
|
||||
void onSldDayLengthChanged(F32 value);
|
||||
|
|
@ -130,7 +132,7 @@ protected:
|
|||
|
||||
LLFloaterSettingsPicker * getSettingsPicker(bool create = true);
|
||||
LLFloaterEditExtDayCycle * getEditFloater(bool create = true);
|
||||
void updateEditFloater(const LLEnvironment::EnvironmentInfo::ptr_t &nextenv);
|
||||
void updateEditFloater(const LLEnvironment::EnvironmentInfo::ptr_t &nextenv, bool enable);
|
||||
|
||||
void setCrossRegion(bool val) { mCrossRegion = val; }
|
||||
void setNoSelection(bool val) { mNoSelection = val; }
|
||||
|
|
|
|||
|
|
@ -114,12 +114,12 @@ void LLSettingsVOBase::createNewInventoryItem(LLSettingsType::type_e stype, cons
|
|||
|
||||
create_inventory_settings(gAgent.getID(), gAgent.getSessionID(),
|
||||
parent_id, LLTransactionID::tnull,
|
||||
LLSettingsType::getDefaultName(stype), "new settings collection.",
|
||||
LLSettingsType::getDefaultName(stype), "",
|
||||
stype, nextOwnerPerm, cb);
|
||||
}
|
||||
|
||||
|
||||
void LLSettingsVOBase::createInventoryItem(const LLSettingsBase::ptr_t &settings, const LLUUID &parent_id, inventory_result_fn callback)
|
||||
void LLSettingsVOBase::createInventoryItem(const LLSettingsBase::ptr_t &settings, const LLUUID &parent_id, std::string settings_name, inventory_result_fn callback)
|
||||
{
|
||||
LLTransactionID tid;
|
||||
U32 nextOwnerPerm = LLPermissions::DEFAULT.getMaskNextOwner();
|
||||
|
|
@ -137,9 +137,13 @@ void LLSettingsVOBase::createInventoryItem(const LLSettingsBase::ptr_t &settings
|
|||
LLSettingsVOBase::onInventoryItemCreated(inventoryId, settings, callback);
|
||||
});
|
||||
|
||||
if (settings_name.empty())
|
||||
{
|
||||
settings_name = settings->getName();
|
||||
}
|
||||
create_inventory_settings(gAgent.getID(), gAgent.getSessionID(),
|
||||
parent_id, tid,
|
||||
settings->getName(), "new settings collection.",
|
||||
settings_name, "",
|
||||
settings->getSettingsTypeValue(), nextOwnerPerm, cb);
|
||||
}
|
||||
|
||||
|
|
@ -160,10 +164,10 @@ void LLSettingsVOBase::onInventoryItemCreated(const LLUUID &inventoryId, LLSetti
|
|||
return;
|
||||
}
|
||||
// We need to update some inventory stuff here.... maybe.
|
||||
updateInventoryItem(settings, inventoryId, callback);
|
||||
updateInventoryItem(settings, inventoryId, callback, false);
|
||||
}
|
||||
|
||||
void LLSettingsVOBase::updateInventoryItem(const LLSettingsBase::ptr_t &settings, LLUUID inv_item_id, inventory_result_fn callback)
|
||||
void LLSettingsVOBase::updateInventoryItem(const LLSettingsBase::ptr_t &settings, LLUUID inv_item_id, inventory_result_fn callback, bool update_name)
|
||||
{
|
||||
const LLViewerRegion* region = gAgent.getRegion();
|
||||
if (!region)
|
||||
|
|
@ -195,7 +199,7 @@ void LLSettingsVOBase::updateInventoryItem(const LLSettingsBase::ptr_t &settings
|
|||
new_item->setPermissions(perm);
|
||||
need_update |= true;
|
||||
}
|
||||
if (settings->getName() != new_item->getName())
|
||||
if (update_name && (settings->getName() != new_item->getName()))
|
||||
{
|
||||
new_item->rename(settings->getName());
|
||||
settings->setName(new_item->getName()); // account for corrections
|
||||
|
|
|
|||
|
|
@ -50,9 +50,9 @@ public:
|
|||
typedef std::function<void(LLUUID asset_id, LLUUID inventory_id, LLUUID object_id, LLSD results)> inventory_result_fn;
|
||||
|
||||
static void createNewInventoryItem(LLSettingsType::type_e stype, const LLUUID &parent_id, inventory_result_fn callback = inventory_result_fn());
|
||||
static void createInventoryItem(const LLSettingsBase::ptr_t &settings, const LLUUID &parent_id, inventory_result_fn callback = inventory_result_fn());
|
||||
static void createInventoryItem(const LLSettingsBase::ptr_t &settings, const LLUUID &parent_id, std::string settings_name, inventory_result_fn callback = inventory_result_fn());
|
||||
|
||||
static void updateInventoryItem(const LLSettingsBase::ptr_t &settings, LLUUID inv_item_id, inventory_result_fn callback = inventory_result_fn());
|
||||
static void updateInventoryItem(const LLSettingsBase::ptr_t &settings, LLUUID inv_item_id, inventory_result_fn callback = inventory_result_fn(), bool update_name = true);
|
||||
static void updateInventoryItem(const LLSettingsBase::ptr_t &settings, LLUUID object_id, LLUUID inv_item_id, inventory_result_fn callback = inventory_result_fn());
|
||||
|
||||
static void getSettingsAsset(const LLUUID &assetId, asset_download_fn callback);
|
||||
|
|
|
|||
|
|
@ -77,264 +77,264 @@ class LLVOCachePartition;
|
|||
class LLViewerRegion: public LLCapabilityProvider // implements this interface
|
||||
{
|
||||
public:
|
||||
//MUST MATCH THE ORDER OF DECLARATION IN CONSTRUCTOR
|
||||
//MUST MATCH THE ORDER OF DECLARATION IN CONSTRUCTOR
|
||||
typedef enum
|
||||
{
|
||||
{
|
||||
PARTITION_HUD=0,
|
||||
PARTITION_TERRAIN,
|
||||
PARTITION_VOIDWATER,
|
||||
PARTITION_WATER,
|
||||
PARTITION_TREE,
|
||||
PARTITION_PARTICLE,
|
||||
PARTITION_GRASS,
|
||||
PARTITION_VOLUME,
|
||||
PARTITION_BRIDGE,
|
||||
PARTITION_HUD_PARTICLE,
|
||||
PARTITION_VO_CACHE,
|
||||
PARTITION_NONE,
|
||||
NUM_PARTITIONS
|
||||
} eObjectPartitions;
|
||||
PARTITION_TERRAIN,
|
||||
PARTITION_VOIDWATER,
|
||||
PARTITION_WATER,
|
||||
PARTITION_TREE,
|
||||
PARTITION_PARTICLE,
|
||||
PARTITION_GRASS,
|
||||
PARTITION_VOLUME,
|
||||
PARTITION_BRIDGE,
|
||||
PARTITION_HUD_PARTICLE,
|
||||
PARTITION_VO_CACHE,
|
||||
PARTITION_NONE,
|
||||
NUM_PARTITIONS
|
||||
} eObjectPartitions;
|
||||
|
||||
typedef boost::signals2::signal<void(const LLUUID& region_id)> caps_received_signal_t;
|
||||
typedef boost::signals2::signal<void(const LLUUID& region_id)> caps_received_signal_t;
|
||||
|
||||
LLViewerRegion(const U64 &handle,
|
||||
const LLHost &host,
|
||||
const U32 surface_grid_width,
|
||||
const U32 patch_grid_width,
|
||||
const F32 region_width_meters);
|
||||
~LLViewerRegion();
|
||||
LLViewerRegion(const U64 &handle,
|
||||
const LLHost &host,
|
||||
const U32 surface_grid_width,
|
||||
const U32 patch_grid_width,
|
||||
const F32 region_width_meters);
|
||||
~LLViewerRegion();
|
||||
|
||||
// Call this after you have the region name and handle.
|
||||
void loadObjectCache();
|
||||
void saveObjectCache();
|
||||
// Call this after you have the region name and handle.
|
||||
void loadObjectCache();
|
||||
void saveObjectCache();
|
||||
|
||||
void sendMessage(); // Send the current message to this region's simulator
|
||||
void sendReliableMessage(); // Send the current message to this region's simulator
|
||||
void sendMessage(); // Send the current message to this region's simulator
|
||||
void sendReliableMessage(); // Send the current message to this region's simulator
|
||||
|
||||
void setOriginGlobal(const LLVector3d &origin);
|
||||
//void setAgentOffset(const LLVector3d &offset);
|
||||
void updateRenderMatrix();
|
||||
void setOriginGlobal(const LLVector3d &origin);
|
||||
//void setAgentOffset(const LLVector3d &offset);
|
||||
void updateRenderMatrix();
|
||||
|
||||
void setAllowDamage(BOOL b) { setRegionFlag(REGION_FLAGS_ALLOW_DAMAGE, b); }
|
||||
void setAllowLandmark(BOOL b) { setRegionFlag(REGION_FLAGS_ALLOW_LANDMARK, b); }
|
||||
void setAllowSetHome(BOOL b) { setRegionFlag(REGION_FLAGS_ALLOW_SET_HOME, b); }
|
||||
void setResetHomeOnTeleport(BOOL b) { setRegionFlag(REGION_FLAGS_RESET_HOME_ON_TELEPORT, b); }
|
||||
void setSunFixed(BOOL b) { setRegionFlag(REGION_FLAGS_SUN_FIXED, b); }
|
||||
//void setBlockFly(BOOL b) { setRegionFlag(REGION_FLAGS_BLOCK_FLY, b); } Never used
|
||||
void setAllowDirectTeleport(BOOL b) { setRegionFlag(REGION_FLAGS_ALLOW_DIRECT_TELEPORT, b); }
|
||||
void setAllowDamage(BOOL b) { setRegionFlag(REGION_FLAGS_ALLOW_DAMAGE, b); }
|
||||
void setAllowLandmark(BOOL b) { setRegionFlag(REGION_FLAGS_ALLOW_LANDMARK, b); }
|
||||
void setAllowSetHome(BOOL b) { setRegionFlag(REGION_FLAGS_ALLOW_SET_HOME, b); }
|
||||
void setResetHomeOnTeleport(BOOL b) { setRegionFlag(REGION_FLAGS_RESET_HOME_ON_TELEPORT, b); }
|
||||
void setSunFixed(BOOL b) { setRegionFlag(REGION_FLAGS_SUN_FIXED, b); }
|
||||
//void setBlockFly(BOOL b) { setRegionFlag(REGION_FLAGS_BLOCK_FLY, b); } Never used
|
||||
void setAllowDirectTeleport(BOOL b) { setRegionFlag(REGION_FLAGS_ALLOW_DIRECT_TELEPORT, b); }
|
||||
|
||||
|
||||
inline BOOL getAllowDamage() const;
|
||||
inline BOOL getAllowLandmark() const;
|
||||
inline BOOL getAllowSetHome() const;
|
||||
inline BOOL getResetHomeOnTeleport() const;
|
||||
inline BOOL getSunFixed() const;
|
||||
inline BOOL getBlockFly() const;
|
||||
inline BOOL getAllowDirectTeleport() const;
|
||||
inline BOOL isPrelude() const;
|
||||
inline BOOL getAllowTerraform() const;
|
||||
inline BOOL getRestrictPushObject() const;
|
||||
inline BOOL getReleaseNotesRequested() const;
|
||||
inline BOOL getAllowDamage() const;
|
||||
inline BOOL getAllowLandmark() const;
|
||||
inline BOOL getAllowSetHome() const;
|
||||
inline BOOL getResetHomeOnTeleport() const;
|
||||
inline BOOL getSunFixed() const;
|
||||
inline BOOL getBlockFly() const;
|
||||
inline BOOL getAllowDirectTeleport() const;
|
||||
inline BOOL isPrelude() const;
|
||||
inline BOOL getAllowTerraform() const;
|
||||
inline BOOL getRestrictPushObject() const;
|
||||
inline BOOL getReleaseNotesRequested() const;
|
||||
|
||||
// bool isAlive(); // can become false if circuit disconnects
|
||||
// bool isAlive(); // can become false if circuit disconnects
|
||||
// [SL:KB] - Patch: World-MinimapOverlay | Checked: 2012-06-20 (Catznip-3.3)
|
||||
bool isAlive() const; // can become false if circuit disconnects
|
||||
bool isAlive() const; // can become false if circuit disconnects
|
||||
|
||||
typedef std::vector<LLPointer<LLViewerTexture> > tex_matrix_t;
|
||||
const tex_matrix_t& getWorldMapTiles() const;
|
||||
typedef std::vector<LLPointer<LLViewerTexture> > tex_matrix_t;
|
||||
const tex_matrix_t& getWorldMapTiles() const;
|
||||
// [/SL:KB]
|
||||
|
||||
void setWaterHeight(F32 water_level);
|
||||
F32 getWaterHeight() const;
|
||||
void setWaterHeight(F32 water_level);
|
||||
F32 getWaterHeight() const;
|
||||
// <FS:CR> Aurora Sim
|
||||
void rebuildWater();
|
||||
// </FS:CR> Aurora Sim
|
||||
|
||||
BOOL isVoiceEnabled() const;
|
||||
BOOL isVoiceEnabled() const;
|
||||
|
||||
void setBillableFactor(F32 billable_factor) { mBillableFactor = billable_factor; }
|
||||
F32 getBillableFactor() const { return mBillableFactor; }
|
||||
void setBillableFactor(F32 billable_factor) { mBillableFactor = billable_factor; }
|
||||
F32 getBillableFactor() const { return mBillableFactor; }
|
||||
|
||||
// Maximum number of primitives allowed, regardless of object
|
||||
// bonus factor.
|
||||
U32 getMaxTasks() const { return mMaxTasks; }
|
||||
void setMaxTasks(U32 max_tasks) { mMaxTasks = max_tasks; }
|
||||
// Maximum number of primitives allowed, regardless of object
|
||||
// bonus factor.
|
||||
U32 getMaxTasks() const { return mMaxTasks; }
|
||||
void setMaxTasks(U32 max_tasks) { mMaxTasks = max_tasks; }
|
||||
|
||||
// Draw lines in the dirt showing ownership. Return number of
|
||||
// vertices drawn.
|
||||
S32 renderPropertyLines();
|
||||
// Draw lines in the dirt showing ownership. Return number of
|
||||
// vertices drawn.
|
||||
S32 renderPropertyLines();
|
||||
|
||||
// Call this whenever you change the height data in the region.
|
||||
// (Automatically called by LLSurfacePatch's update routine)
|
||||
void dirtyHeights();
|
||||
// Call this whenever you change the height data in the region.
|
||||
// (Automatically called by LLSurfacePatch's update routine)
|
||||
void dirtyHeights();
|
||||
|
||||
LLViewerParcelOverlay *getParcelOverlay() const
|
||||
LLViewerParcelOverlay *getParcelOverlay() const
|
||||
{ return mParcelOverlay; }
|
||||
|
||||
inline void setRegionFlag(U64 flag, BOOL on);
|
||||
inline BOOL getRegionFlag(U64 flag) const;
|
||||
void setRegionFlags(U64 flags);
|
||||
U64 getRegionFlags() const { return mRegionFlags; }
|
||||
inline void setRegionFlag(U64 flag, BOOL on);
|
||||
inline BOOL getRegionFlag(U64 flag) const;
|
||||
void setRegionFlags(U64 flags);
|
||||
U64 getRegionFlags() const { return mRegionFlags; }
|
||||
|
||||
inline void setRegionProtocol(U64 protocol, BOOL on);
|
||||
BOOL getRegionProtocol(U64 protocol) const;
|
||||
void setRegionProtocols(U64 protocols) { mRegionProtocols = protocols; }
|
||||
U64 getRegionProtocols() const { return mRegionProtocols; }
|
||||
inline void setRegionProtocol(U64 protocol, BOOL on);
|
||||
BOOL getRegionProtocol(U64 protocol) const;
|
||||
void setRegionProtocols(U64 protocols) { mRegionProtocols = protocols; }
|
||||
U64 getRegionProtocols() const { return mRegionProtocols; }
|
||||
|
||||
void setTimeDilation(F32 time_dilation);
|
||||
F32 getTimeDilation() const { return mTimeDilation; }
|
||||
void setTimeDilation(F32 time_dilation);
|
||||
F32 getTimeDilation() const { return mTimeDilation; }
|
||||
|
||||
// Origin height is at zero.
|
||||
const LLVector3d &getOriginGlobal() const;
|
||||
LLVector3 getOriginAgent() const;
|
||||
// Origin height is at zero.
|
||||
const LLVector3d &getOriginGlobal() const;
|
||||
LLVector3 getOriginAgent() const;
|
||||
|
||||
// Center is at the height of the water table.
|
||||
const LLVector3d &getCenterGlobal() const;
|
||||
LLVector3 getCenterAgent() const;
|
||||
// Center is at the height of the water table.
|
||||
const LLVector3d &getCenterGlobal() const;
|
||||
LLVector3 getCenterAgent() const;
|
||||
|
||||
void setRegionNameAndZone(const std::string& name_and_zone);
|
||||
const std::string& getName() const { return mName; }
|
||||
const std::string& getZoning() const { return mZoning; }
|
||||
void setRegionNameAndZone(const std::string& name_and_zone);
|
||||
const std::string& getName() const { return mName; }
|
||||
const std::string& getZoning() const { return mZoning; }
|
||||
|
||||
void setOwner(const LLUUID& owner_id);
|
||||
const LLUUID& getOwner() const;
|
||||
void setOwner(const LLUUID& owner_id);
|
||||
const LLUUID& getOwner() const;
|
||||
|
||||
// Is the current agent on the estate manager list for this region?
|
||||
void setIsEstateManager(BOOL b) { mIsEstateManager = b; }
|
||||
BOOL isEstateManager() const { return mIsEstateManager; }
|
||||
BOOL canManageEstate() const;
|
||||
// Is the current agent on the estate manager list for this region?
|
||||
void setIsEstateManager(BOOL b) { mIsEstateManager = b; }
|
||||
BOOL isEstateManager() const { return mIsEstateManager; }
|
||||
BOOL canManageEstate() const;
|
||||
|
||||
void setSimAccess(U8 sim_access) { mSimAccess = sim_access; }
|
||||
U8 getSimAccess() const { return mSimAccess; }
|
||||
const std::string getSimAccessString() const;
|
||||
void setSimAccess(U8 sim_access) { mSimAccess = sim_access; }
|
||||
U8 getSimAccess() const { return mSimAccess; }
|
||||
const std::string getSimAccessString() const;
|
||||
|
||||
// Homestead-related getters; there are no setters as nobody should be
|
||||
// setting them other than the individual message handler which is a member
|
||||
S32 getSimClassID() const { return mClassID; }
|
||||
S32 getSimCPURatio() const { return mCPURatio; }
|
||||
const std::string& getSimColoName() const { return mColoName; }
|
||||
const std::string& getSimProductSKU() const { return mProductSKU; }
|
||||
std::string getLocalizedSimProductName() const;
|
||||
// Homestead-related getters; there are no setters as nobody should be
|
||||
// setting them other than the individual message handler which is a member
|
||||
S32 getSimClassID() const { return mClassID; }
|
||||
S32 getSimCPURatio() const { return mCPURatio; }
|
||||
const std::string& getSimColoName() const { return mColoName; }
|
||||
const std::string& getSimProductSKU() const { return mProductSKU; }
|
||||
std::string getLocalizedSimProductName() const;
|
||||
|
||||
// Returns "Sandbox", "Expensive", etc.
|
||||
static std::string regionFlagsToString(U64 flags);
|
||||
// Returns "Sandbox", "Expensive", etc.
|
||||
static std::string regionFlagsToString(U64 flags);
|
||||
|
||||
// Returns translated version of "Mature", "PG", "Adult", etc.
|
||||
static std::string accessToString(U8 sim_access);
|
||||
// Returns translated version of "Mature", "PG", "Adult", etc.
|
||||
static std::string accessToString(U8 sim_access);
|
||||
|
||||
// Returns "M", "PG", "A" etc.
|
||||
static std::string accessToShortString(U8 sim_access);
|
||||
static U8 shortStringToAccess(const std::string &sim_access);
|
||||
// Returns "M", "PG", "A" etc.
|
||||
static std::string accessToShortString(U8 sim_access);
|
||||
static U8 shortStringToAccess(const std::string &sim_access);
|
||||
|
||||
// Return access icon name
|
||||
static std::string getAccessIcon(U8 sim_access);
|
||||
// Return access icon name
|
||||
static std::string getAccessIcon(U8 sim_access);
|
||||
|
||||
// helper function which just makes sure all interested parties
|
||||
// can process the message.
|
||||
static void processRegionInfo(LLMessageSystem* msg, void**);
|
||||
// helper function which just makes sure all interested parties
|
||||
// can process the message.
|
||||
static void processRegionInfo(LLMessageSystem* msg, void**);
|
||||
|
||||
//check if the viewer camera is static
|
||||
static BOOL isViewerCameraStatic();
|
||||
static void calcNewObjectCreationThrottle();
|
||||
//check if the viewer camera is static
|
||||
static BOOL isViewerCameraStatic();
|
||||
static void calcNewObjectCreationThrottle();
|
||||
|
||||
void setCacheID(const LLUUID& id);
|
||||
void setCacheID(const LLUUID& id);
|
||||
|
||||
F32 getWidth() const { return mWidth; }
|
||||
F32 getWidth() const { return mWidth; }
|
||||
F32 getWidthScaleFactor() const { return mWidthScaleFactor; } // <FS:Ansariel> FIRE-19563: Scaling for OpenSim VarRegions
|
||||
|
||||
void idleUpdate(F32 max_update_time);
|
||||
void lightIdleUpdate();
|
||||
bool addVisibleGroup(LLViewerOctreeGroup* group);
|
||||
void addVisibleChildCacheEntry(LLVOCacheEntry* parent, LLVOCacheEntry* child);
|
||||
void addActiveCacheEntry(LLVOCacheEntry* entry);
|
||||
void idleUpdate(F32 max_update_time);
|
||||
void lightIdleUpdate();
|
||||
bool addVisibleGroup(LLViewerOctreeGroup* group);
|
||||
void addVisibleChildCacheEntry(LLVOCacheEntry* parent, LLVOCacheEntry* child);
|
||||
void addActiveCacheEntry(LLVOCacheEntry* entry);
|
||||
void removeActiveCacheEntry(LLVOCacheEntry* entry, LLDrawable* drawablep);
|
||||
void killCacheEntry(U32 local_id); //physically delete the cache entry
|
||||
void killCacheEntry(U32 local_id); //physically delete the cache entry
|
||||
|
||||
// Like idleUpdate, but forces everything to complete regardless of
|
||||
// how long it takes.
|
||||
void forceUpdate();
|
||||
// Like idleUpdate, but forces everything to complete regardless of
|
||||
// how long it takes.
|
||||
void forceUpdate();
|
||||
|
||||
void connectNeighbor(LLViewerRegion *neighborp, U32 direction);
|
||||
void connectNeighbor(LLViewerRegion *neighborp, U32 direction);
|
||||
|
||||
void updateNetStats();
|
||||
void updateNetStats();
|
||||
|
||||
U32 getPacketsLost() const;
|
||||
U32 getPacketsLost() const;
|
||||
|
||||
S32 getHttpResponderID() const;
|
||||
S32 getHttpResponderID() const;
|
||||
|
||||
// Get/set named capability URLs for this region.
|
||||
void setSeedCapability(const std::string& url);
|
||||
S32 getNumSeedCapRetries();
|
||||
void setCapability(const std::string& name, const std::string& url);
|
||||
void setCapabilityDebug(const std::string& name, const std::string& url);
|
||||
bool isCapabilityAvailable(const std::string& name) const;
|
||||
// implements LLCapabilityProvider
|
||||
// Get/set named capability URLs for this region.
|
||||
void setSeedCapability(const std::string& url);
|
||||
S32 getNumSeedCapRetries();
|
||||
void setCapability(const std::string& name, const std::string& url);
|
||||
void setCapabilityDebug(const std::string& name, const std::string& url);
|
||||
bool isCapabilityAvailable(const std::string& name) const;
|
||||
// implements LLCapabilityProvider
|
||||
virtual std::string getCapability(const std::string& name) const;
|
||||
std::string getCapabilityDebug(const std::string& name) const;
|
||||
|
||||
|
||||
// has region received its final (not seed) capability list?
|
||||
bool capabilitiesReceived() const;
|
||||
void setCapabilitiesReceived(bool received);
|
||||
boost::signals2::connection setCapabilitiesReceivedCallback(const caps_received_signal_t::slot_type& cb);
|
||||
// has region received its final (not seed) capability list?
|
||||
bool capabilitiesReceived() const;
|
||||
void setCapabilitiesReceived(bool received);
|
||||
boost::signals2::connection setCapabilitiesReceivedCallback(const caps_received_signal_t::slot_type& cb);
|
||||
|
||||
static bool isSpecialCapabilityName(const std::string &name);
|
||||
void logActiveCapabilities() const;
|
||||
static bool isSpecialCapabilityName(const std::string &name);
|
||||
void logActiveCapabilities() const;
|
||||
|
||||
/// implements LLCapabilityProvider
|
||||
/*virtual*/ const LLHost& getHost() const;
|
||||
const U64 &getHandle() const { return mHandle; }
|
||||
/*virtual*/ const LLHost& getHost() const;
|
||||
const U64 &getHandle() const { return mHandle; }
|
||||
|
||||
LLSurface &getLand() const;
|
||||
LLSurface &getLand() const;
|
||||
|
||||
// set and get the region id
|
||||
const LLUUID& getRegionID() const;
|
||||
void setRegionID(const LLUUID& region_id);
|
||||
// set and get the region id
|
||||
const LLUUID& getRegionID() const;
|
||||
void setRegionID(const LLUUID& region_id);
|
||||
|
||||
BOOL pointInRegionGlobal(const LLVector3d &point_global) const;
|
||||
LLVector3 getPosRegionFromGlobal(const LLVector3d &point_global) const;
|
||||
LLVector3 getPosRegionFromAgent(const LLVector3 &agent_pos) const;
|
||||
LLVector3 getPosAgentFromRegion(const LLVector3 ®ion_pos) const;
|
||||
LLVector3d getPosGlobalFromRegion(const LLVector3 &offset) const;
|
||||
BOOL pointInRegionGlobal(const LLVector3d &point_global) const;
|
||||
LLVector3 getPosRegionFromGlobal(const LLVector3d &point_global) const;
|
||||
LLVector3 getPosRegionFromAgent(const LLVector3 &agent_pos) const;
|
||||
LLVector3 getPosAgentFromRegion(const LLVector3 ®ion_pos) const;
|
||||
LLVector3d getPosGlobalFromRegion(const LLVector3 &offset) const;
|
||||
|
||||
LLVLComposition *getComposition() const;
|
||||
F32 getCompositionXY(const S32 x, const S32 y) const;
|
||||
LLVLComposition *getComposition() const;
|
||||
F32 getCompositionXY(const S32 x, const S32 y) const;
|
||||
|
||||
//BOOL isOwnedSelf(const LLVector3& pos);
|
||||
//
|
||||
// // Owned by a group you belong to? (officer OR member)
|
||||
// BOOL isOwnedGroup(const LLVector3& pos);
|
||||
// [SL:KB] - Patch: UI-SidepanelPeople | Checked: 2010-12-02 (Catznip-2.4.0g) | Added: Catznip-2.4.0g
|
||||
BOOL isOwnedSelf(const LLVector3& pos) const;
|
||||
// BOOL isOwnedSelf(const LLVector3& pos);
|
||||
//
|
||||
// // Owned by a group you belong to? (officer OR member)
|
||||
// BOOL isOwnedGroup(const LLVector3& pos);
|
||||
// [SL:KB] - Patch: UI-SidepanelPeople | Checked: 2010-12-02 (Catznip-2.4.0g) | Added: Catznip-2.4.0g
|
||||
BOOL isOwnedSelf(const LLVector3& pos) const;
|
||||
|
||||
// Owned by a group you belong to? (officer OR member)
|
||||
BOOL isOwnedGroup(const LLVector3& pos) const;
|
||||
// [/SL:KB]
|
||||
// Owned by a group you belong to? (officer OR member)
|
||||
BOOL isOwnedGroup(const LLVector3& pos) const;
|
||||
// [/SL:KB]
|
||||
|
||||
// deal with map object updates in the world.
|
||||
void updateCoarseLocations(LLMessageSystem* msg);
|
||||
// deal with map object updates in the world.
|
||||
void updateCoarseLocations(LLMessageSystem* msg);
|
||||
|
||||
F32 getLandHeightRegion(const LLVector3& region_pos);
|
||||
F32 getLandHeightRegion(const LLVector3& region_pos);
|
||||
|
||||
U8 getCentralBakeVersion() { return mCentralBakeVersion; }
|
||||
U8 getCentralBakeVersion() { return mCentralBakeVersion; }
|
||||
|
||||
void getInfo(LLSD& info);
|
||||
void getInfo(LLSD& info);
|
||||
|
||||
bool meshRezEnabled() const;
|
||||
bool meshUploadEnabled() const;
|
||||
bool meshRezEnabled() const;
|
||||
bool meshUploadEnabled() const;
|
||||
|
||||
// has region received its simulator features list? Requires an additional query after caps received.
|
||||
void setSimulatorFeaturesReceived(bool);
|
||||
bool simulatorFeaturesReceived() const;
|
||||
boost::signals2::connection setSimulatorFeaturesReceivedCallback(const caps_received_signal_t::slot_type& cb);
|
||||
// has region received its simulator features list? Requires an additional query after caps received.
|
||||
void setSimulatorFeaturesReceived(bool);
|
||||
bool simulatorFeaturesReceived() const;
|
||||
boost::signals2::connection setSimulatorFeaturesReceivedCallback(const caps_received_signal_t::slot_type& cb);
|
||||
|
||||
void getSimulatorFeatures(LLSD& info) const;
|
||||
void setSimulatorFeatures(const LLSD& info);
|
||||
void setSimulatorFeatures(const LLSD& info);
|
||||
|
||||
|
||||
bool dynamicPathfindingEnabled() const;
|
||||
bool dynamicPathfindingEnabled() const;
|
||||
|
||||
bool avatarHoverHeightEnabled() const;
|
||||
bool avatarHoverHeightEnabled() const;
|
||||
|
||||
// </FS:CR>
|
||||
#ifdef OPENSIM
|
||||
|
|
@ -342,69 +342,69 @@ public:
|
|||
#endif // OPENSIM
|
||||
// </FS:CR>
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CACHE_MISS_TYPE_FULL = 0,
|
||||
CACHE_MISS_TYPE_CRC,
|
||||
CACHE_MISS_TYPE_NONE
|
||||
} eCacheMissType;
|
||||
typedef enum
|
||||
{
|
||||
CACHE_MISS_TYPE_FULL = 0,
|
||||
CACHE_MISS_TYPE_CRC,
|
||||
CACHE_MISS_TYPE_NONE
|
||||
} eCacheMissType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CACHE_UPDATE_DUPE = 0,
|
||||
CACHE_UPDATE_CHANGED,
|
||||
CACHE_UPDATE_ADDED,
|
||||
CACHE_UPDATE_REPLACED
|
||||
} eCacheUpdateResult;
|
||||
typedef enum
|
||||
{
|
||||
CACHE_UPDATE_DUPE = 0,
|
||||
CACHE_UPDATE_CHANGED,
|
||||
CACHE_UPDATE_ADDED,
|
||||
CACHE_UPDATE_REPLACED
|
||||
} eCacheUpdateResult;
|
||||
|
||||
// handle a full update message
|
||||
eCacheUpdateResult cacheFullUpdate(LLDataPackerBinaryBuffer &dp, U32 flags);
|
||||
// handle a full update message
|
||||
eCacheUpdateResult cacheFullUpdate(LLDataPackerBinaryBuffer &dp, U32 flags);
|
||||
eCacheUpdateResult cacheFullUpdate(LLViewerObject* objectp, LLDataPackerBinaryBuffer &dp, U32 flags);
|
||||
LLVOCacheEntry* getCacheEntryForOctree(U32 local_id);
|
||||
LLVOCacheEntry* getCacheEntry(U32 local_id, bool valid = true);
|
||||
bool probeCache(U32 local_id, U32 crc, U32 flags, U8 &cache_miss_type);
|
||||
U64 getRegionCacheHitCount() { return mRegionCacheHitCount; }
|
||||
U64 getRegionCacheMissCount() { return mRegionCacheMissCount; }
|
||||
void requestCacheMisses();
|
||||
void addCacheMissFull(const U32 local_id);
|
||||
//update object cache if the object receives a full-update or terse update
|
||||
LLViewerObject* updateCacheEntry(U32 local_id, LLViewerObject* objectp, U32 update_type);
|
||||
void findOrphans(U32 parent_id);
|
||||
void clearCachedVisibleObjects();
|
||||
void dumpCache();
|
||||
LLVOCacheEntry* getCacheEntryForOctree(U32 local_id);
|
||||
LLVOCacheEntry* getCacheEntry(U32 local_id, bool valid = true);
|
||||
bool probeCache(U32 local_id, U32 crc, U32 flags, U8 &cache_miss_type);
|
||||
U64 getRegionCacheHitCount() { return mRegionCacheHitCount; }
|
||||
U64 getRegionCacheMissCount() { return mRegionCacheMissCount; }
|
||||
void requestCacheMisses();
|
||||
void addCacheMissFull(const U32 local_id);
|
||||
//update object cache if the object receives a full-update or terse update
|
||||
LLViewerObject* updateCacheEntry(U32 local_id, LLViewerObject* objectp, U32 update_type);
|
||||
void findOrphans(U32 parent_id);
|
||||
void clearCachedVisibleObjects();
|
||||
void dumpCache();
|
||||
|
||||
void unpackRegionHandshake();
|
||||
void unpackRegionHandshake();
|
||||
|
||||
void calculateCenterGlobal();
|
||||
void calculateCameraDistance();
|
||||
void calculateCenterGlobal();
|
||||
void calculateCameraDistance();
|
||||
|
||||
friend std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion);
|
||||
friend std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion);
|
||||
/// implements LLCapabilityProvider
|
||||
virtual std::string getDescription() const;
|
||||
std::string getHttpUrl() const { return mHttpUrl; } // <FS:Ansariel> [UDP Assets]
|
||||
std::string getViewerAssetUrl() const { return mViewerAssetUrl; }
|
||||
|
||||
U32 getNumOfVisibleGroups() const;
|
||||
U32 getNumOfActiveCachedObjects() const;
|
||||
LLSpatialPartition* getSpatialPartition(U32 type);
|
||||
LLVOCachePartition* getVOCachePartition();
|
||||
U32 getNumOfVisibleGroups() const;
|
||||
U32 getNumOfActiveCachedObjects() const;
|
||||
LLSpatialPartition* getSpatialPartition(U32 type);
|
||||
LLVOCachePartition* getVOCachePartition();
|
||||
|
||||
bool objectIsReturnable(const LLVector3& pos, const std::vector<LLBBox>& boxes) const;
|
||||
bool objectIsReturnable(const LLVector3& pos, const std::vector<LLBBox>& boxes) const;
|
||||
bool childrenObjectReturnable( const std::vector<LLBBox>& boxes ) const;
|
||||
bool objectsCrossParcel(const std::vector<LLBBox>& boxes) const;
|
||||
bool objectsCrossParcel(const std::vector<LLBBox>& boxes) const;
|
||||
|
||||
void getNeighboringRegions( std::vector<LLViewerRegion*>& uniqueRegions );
|
||||
void getNeighboringRegionsStatus( std::vector<S32>& regions );
|
||||
const LLViewerRegionImpl * getRegionImpl() const { return mImpl; }
|
||||
LLViewerRegionImpl * getRegionImplNC() { return mImpl; }
|
||||
const LLViewerRegionImpl * getRegionImpl() const { return mImpl; }
|
||||
LLViewerRegionImpl * getRegionImplNC() { return mImpl; }
|
||||
|
||||
// implements the materials capability throttle
|
||||
bool materialsCapThrottled() const { return !mMaterialsCapThrottleTimer.hasExpired(); }
|
||||
void resetMaterialsCapThrottle();
|
||||
// implements the materials capability throttle
|
||||
bool materialsCapThrottled() const { return !mMaterialsCapThrottleTimer.hasExpired(); }
|
||||
void resetMaterialsCapThrottle();
|
||||
|
||||
U32 getMaxMaterialsPerTransaction() const;
|
||||
U32 getMaxMaterialsPerTransaction() const;
|
||||
|
||||
void removeFromCreatedList(U32 local_id);
|
||||
void removeFromCreatedList(U32 local_id);
|
||||
void addToCreatedList(U32 local_id);
|
||||
|
||||
BOOL isPaused() const {return mPaused;}
|
||||
|
|
|
|||
|
|
@ -2381,8 +2381,9 @@ bool LLVOVolume::notifyAboutMissingAsset(LLViewerTexture *texture)
|
|||
|
||||
mat->setSpecularID(LLUUID::null);
|
||||
} break;
|
||||
default:
|
||||
break;
|
||||
case LLRender::NUM_TEXTURE_CHANNELS:
|
||||
//nothing to do, make compiler happy
|
||||
break;
|
||||
} //switch
|
||||
} //for
|
||||
|
||||
|
|
|
|||
|
|
@ -10011,16 +10011,20 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
|
|||
|
||||
//plane params
|
||||
LLVector3 pnorm;
|
||||
F32 plane_d;
|
||||
|
||||
S32 water_clip = 0;
|
||||
if (!LLViewerCamera::getInstance()->cameraUnderWater())
|
||||
{ //camera is above water, clip plane points up
|
||||
pnorm.setVec(0,0,1);
|
||||
plane_d = -water_height;
|
||||
plane.setVec(pnorm, -distance_to_water);
|
||||
water_clip = -1;
|
||||
}
|
||||
else
|
||||
{ //camera is below water, clip plane points down
|
||||
pnorm = LLVector3(0,0,-1);
|
||||
plane_d = water_height;
|
||||
plane.setVec(pnorm, distance_to_water);
|
||||
water_clip = 1;
|
||||
}
|
||||
|
|
@ -10053,6 +10057,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
|
|||
|
||||
stop_glerror();
|
||||
|
||||
gGL.matrixMode(LLRender::MM_MODELVIEW);
|
||||
gGL.pushMatrix();
|
||||
|
||||
glh::matrix4f current = get_current_modelview();
|
||||
|
|
@ -10172,6 +10177,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
|
|||
LLPipeline::sRenderingWaterReflection = false;
|
||||
|
||||
glCullFace(GL_BACK);
|
||||
gGL.matrixMode(LLRender::MM_MODELVIEW);
|
||||
gGL.popMatrix();
|
||||
mWaterRef.flush();
|
||||
set_current_modelview(current);
|
||||
|
|
@ -10280,7 +10286,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
|
|||
gPipeline.popRenderTypeMask();
|
||||
LLDrawPoolWater::sNeedsReflectionUpdate = FALSE;
|
||||
LLDrawPoolWater::sNeedsDistortionUpdate = FALSE;
|
||||
LLPlane npnorm(-pnorm, -distance_to_water);
|
||||
LLPlane npnorm(-pnorm, -plane_d);
|
||||
LLViewerCamera::getInstance()->setUserClipPlane(npnorm);
|
||||
|
||||
LLGLState::checkStates();
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@
|
|||
right="-2" />
|
||||
<inventory_panel
|
||||
allow_multi_select="false"
|
||||
suppress_folder_menu="true"
|
||||
bg_visible="true"
|
||||
bg_alpha_color="DkGray2"
|
||||
border="false"
|
||||
|
|
|
|||
|
|
@ -6373,7 +6373,7 @@ This day cycle file references a missing sky file: [SKY].
|
|||
icon="alertmodal.tga"
|
||||
name="WLRegionApplyFail"
|
||||
type="alertmodal">
|
||||
Sorry, the settings couldn't be applied to the region. Leaving the region and then returning may help rectify the problem. The reason given was: [FAIL_REASON]
|
||||
Sorry, the settings couldn't be applied to the region. Reason: [FAIL_REASON]
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
|
|
@ -12977,6 +12977,30 @@ Unable to apply those settings to the environment.
|
|||
This Region does not support environmental settings.
|
||||
<tag>fail</tag>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="alertmodal.tga"
|
||||
label="Save Outfit"
|
||||
name="SaveSettingAs"
|
||||
type="alertmodal">
|
||||
<unique/>
|
||||
Save current environmental settings as:
|
||||
<tag>confirm</tag>
|
||||
<form name="form">
|
||||
<input name="message" type="text">
|
||||
[DESC] (new)
|
||||
</input>
|
||||
<button
|
||||
default="true"
|
||||
index="0"
|
||||
name="OK"
|
||||
text="OK"/>
|
||||
<button
|
||||
index="1"
|
||||
name="Cancel"
|
||||
text="Cancel"/>
|
||||
</form>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notify.tga"
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@
|
|||
top_pad="6"
|
||||
name="sld_day_length"
|
||||
min_val="4"
|
||||
max_val="178"
|
||||
max_val="168"
|
||||
width="180" />
|
||||
<text
|
||||
type="string"
|
||||
|
|
@ -244,7 +244,7 @@
|
|||
width="17"
|
||||
orientation="vertical"
|
||||
increment="10"
|
||||
initial_value="100"
|
||||
min_val="100"
|
||||
max_val="4000"
|
||||
layout="topleft"
|
||||
left="15"
|
||||
|
|
@ -277,7 +277,7 @@
|
|||
height="12"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
top_delta="0"
|
||||
top_delta="2"
|
||||
width="200"
|
||||
name="ground">
|
||||
Ground
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@
|
|||
layout="topleft"
|
||||
left_delta="5"
|
||||
min_val="0"
|
||||
max_val="1"
|
||||
max_val="5"
|
||||
name="haze_horizon"
|
||||
top_delta="20"
|
||||
width="207"
|
||||
|
|
@ -142,7 +142,7 @@
|
|||
layout="topleft"
|
||||
left_delta="5"
|
||||
min_val="0"
|
||||
max_val="1"
|
||||
max_val="5"
|
||||
name="haze_density"
|
||||
top_delta="20"
|
||||
width="207"
|
||||
|
|
@ -164,7 +164,7 @@
|
|||
initial_value="0"
|
||||
layout="topleft"
|
||||
left_delta="5"
|
||||
max_val="10"
|
||||
max_val="20"
|
||||
name="scene_gamma"
|
||||
top_delta="20"
|
||||
width="214"
|
||||
|
|
@ -195,7 +195,7 @@
|
|||
layout="topleft"
|
||||
left_delta="5"
|
||||
min_val="0.0001"
|
||||
max_val="0.9"
|
||||
max_val="2"
|
||||
name="density_multip"
|
||||
top_delta="20"
|
||||
width="207"
|
||||
|
|
@ -218,7 +218,7 @@
|
|||
layout="topleft"
|
||||
left_delta="5"
|
||||
min_val="0"
|
||||
max_val="100"
|
||||
max_val="1000"
|
||||
name="distance_multip"
|
||||
top_delta="20"
|
||||
width="219"
|
||||
|
|
@ -241,7 +241,7 @@
|
|||
layout="topleft"
|
||||
left_delta="5"
|
||||
min_val="0"
|
||||
max_val="4000"
|
||||
max_val="10000"
|
||||
name="max_alt"
|
||||
top_delta="20"
|
||||
width="219"
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@
|
|||
layout="topleft"
|
||||
left_delta="5"
|
||||
min_val="0"
|
||||
max_val="1"
|
||||
max_val="3"
|
||||
name="cloud_scale"
|
||||
top_delta="20"
|
||||
width="214"
|
||||
|
|
@ -105,10 +105,10 @@
|
|||
visible="true"
|
||||
left_delta="0"
|
||||
top_delta="21"
|
||||
min_val_x="-10"
|
||||
max_val_x="10"
|
||||
min_val_y="-10"
|
||||
max_val_y="10" />
|
||||
min_val_x="-30"
|
||||
max_val_x="30"
|
||||
min_val_y="-30"
|
||||
max_val_y="30" />
|
||||
|
||||
<text
|
||||
follows="left|top"
|
||||
|
|
@ -183,7 +183,7 @@
|
|||
layout="topleft"
|
||||
left_delta="0"
|
||||
min_val="0"
|
||||
max_val="1"
|
||||
max_val="3"
|
||||
name="cloud_density_d"
|
||||
top_delta="20"
|
||||
width="200"
|
||||
|
|
@ -237,7 +237,7 @@
|
|||
layout="topleft"
|
||||
left_delta="0"
|
||||
min_val="0"
|
||||
max_val="1"
|
||||
max_val="2"
|
||||
name="cloud_detail_d"
|
||||
top_delta="20"
|
||||
width="200"
|
||||
|
|
|
|||
|
|
@ -124,8 +124,8 @@
|
|||
initial_value="0"
|
||||
layout="topleft"
|
||||
left_delta="5"
|
||||
min_val="0"
|
||||
max_val="0.5"
|
||||
min_val="-2"
|
||||
max_val="2"
|
||||
name="glow_focus"
|
||||
top_delta="15"
|
||||
width="250"
|
||||
|
|
@ -147,8 +147,8 @@
|
|||
initial_value="0"
|
||||
layout="topleft"
|
||||
left_delta="5"
|
||||
min_val="1"
|
||||
max_val="1.99"
|
||||
min_val="0"
|
||||
max_val="2"
|
||||
name="glow_size"
|
||||
top_delta="15"
|
||||
width="250"
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@
|
|||
initial_value="0"
|
||||
layout="top"
|
||||
left_delta="15"
|
||||
min_val="-10"
|
||||
max_val="10"
|
||||
name="water_fog_density"
|
||||
top_delta="5"
|
||||
|
|
@ -190,11 +191,11 @@
|
|||
visible="true"
|
||||
left_delta="0"
|
||||
top_delta="21"
|
||||
min_val_x="-4"
|
||||
max_val_x="4"
|
||||
min_val_x="-20"
|
||||
max_val_x="20"
|
||||
increment_x="0.5f"
|
||||
min_val_y="-4"
|
||||
max_val_y="4"
|
||||
min_val_y="-20"
|
||||
max_val_y="20"
|
||||
increment_y="0.5f"
|
||||
arrow_color="white"/>
|
||||
|
||||
|
|
@ -214,10 +215,10 @@
|
|||
visible="true"
|
||||
left_delta="0"
|
||||
top_delta="21"
|
||||
min_val_x="-4"
|
||||
max_val_x="4"
|
||||
min_val_y="-4"
|
||||
max_val_y="4"
|
||||
min_val_x="-20"
|
||||
max_val_x="20"
|
||||
min_val_y="-20"
|
||||
max_val_y="20"
|
||||
arrow_color="white"/>
|
||||
|
||||
<text
|
||||
|
|
@ -306,6 +307,8 @@
|
|||
height="16"
|
||||
layout="topleft"
|
||||
left_delta="5"
|
||||
min_val="0"
|
||||
max_val="3"
|
||||
name="water_scale_above"
|
||||
top_pad="5"
|
||||
width="200"
|
||||
|
|
@ -330,6 +333,8 @@
|
|||
initial_value="0"
|
||||
layout="topleft"
|
||||
left_delta="5"
|
||||
min_val="0"
|
||||
max_val="3"
|
||||
name="water_scale_below"
|
||||
top_pad="5"
|
||||
width="200"
|
||||
|
|
@ -352,7 +357,8 @@
|
|||
initial_value="0"
|
||||
layout="topleft"
|
||||
left_delta="5"
|
||||
max_val="0.16"
|
||||
min_val="-0.5"
|
||||
max_val="0.5"
|
||||
name="water_blur_multip"
|
||||
top_pad="5"
|
||||
width="200"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
height="150"
|
||||
user_resize="false"
|
||||
increment_angle_mouse="1.5f"
|
||||
increment_angle_btn="3.0f"
|
||||
increment_angle_btn="1.0f"
|
||||
image_sphere="VirtualTrackball_Sphere"
|
||||
image_moon_back="VirtualTrackball_Moon_Back"
|
||||
image_moon_front="VirtualTrackball_Moon_Front"
|
||||
|
|
|
|||
Loading…
Reference in New Issue