Merge viewer-eep

meow-7.2.2
Ansariel 2018-09-27 21:24:30 +02:00
commit e2c94f3454
31 changed files with 513 additions and 369 deletions

View File

@ -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

View File

@ -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;

View File

@ -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];

View File

@ -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;

View File

@ -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();

View File

@ -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

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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,

View File

@ -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);

View File

@ -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

View File

@ -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);

View File

@ -3559,7 +3559,6 @@ void LLPanelLandEnvironment::refresh()
}
LLPanelEnvironmentInfo::refresh();
getChild<LLUICtrl>(PNL_ENVIRONMENT_ALTITUDES)->setVisible(FALSE);
}
void LLPanelLandEnvironment::refreshFromSource()

View File

@ -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;

View File

@ -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;

View File

@ -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();
}

View File

@ -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);
}

View File

@ -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; }

View File

@ -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

View File

@ -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);

View File

@ -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 &region_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 &region_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 &region);
friend std::ostream& operator<<(std::ostream &s, const LLViewerRegion &region);
/// 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;}

View File

@ -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

View File

@ -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();

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"