Merge Firestorm tip
commit
7e684498ac
|
|
@ -36,6 +36,8 @@
|
|||
|
||||
|
||||
extern U32 gOctreeMaxCapacity;
|
||||
extern float gOctreeMinSize;
|
||||
|
||||
/*#define LL_OCTREE_PARANOIA_CHECK 0
|
||||
#if LL_DARWIN
|
||||
#define LL_OCTREE_MAX_CAPACITY 32
|
||||
|
|
@ -106,6 +108,7 @@ public:
|
|||
: mParent((oct_node*)parent),
|
||||
mOctant(octant)
|
||||
{
|
||||
llassert(size[0] >= gOctreeMinSize*0.5f);
|
||||
//always keep a NULL terminated list to avoid out of bounds exceptions in debug builds
|
||||
mData.push_back(NULL);
|
||||
mDataEnd = &mData[0];
|
||||
|
|
@ -213,7 +216,7 @@ public:
|
|||
F32 size = mSize[0];
|
||||
F32 p_size = size * 2.f;
|
||||
|
||||
return (radius <= 0.001f && size <= 0.001f) ||
|
||||
return (radius <= gOctreeMinSize && size <= gOctreeMinSize) ||
|
||||
(radius <= p_size && radius > size);
|
||||
}
|
||||
|
||||
|
|
@ -319,7 +322,7 @@ public:
|
|||
//is it here?
|
||||
if (isInside(data->getPositionGroup()))
|
||||
{
|
||||
if (((getElementCount() < gOctreeMaxCapacity && contains(data->getBinRadius())) ||
|
||||
if (((getElementCount() < gOctreeMaxCapacity || getSize()[0] <= gOctreeMinSize) && contains(data->getBinRadius()) ||
|
||||
(data->getBinRadius() > getSize()[0] && parent && parent->getElementCount() >= gOctreeMaxCapacity)))
|
||||
{ //it belongs here
|
||||
mData.push_back(NULL);
|
||||
|
|
@ -356,8 +359,9 @@ public:
|
|||
LLVector4a val;
|
||||
val.setSub(center, getCenter());
|
||||
val.setAbs(val);
|
||||
|
||||
S32 lt = val.lessThan(LLVector4a::getEpsilon()).getGatheredBits() & 0x7;
|
||||
LLVector4a min_diff(gOctreeMinSize);
|
||||
|
||||
S32 lt = val.lessThan(min_diff).getGatheredBits() & 0x7;
|
||||
|
||||
if( lt == 0x7 )
|
||||
{
|
||||
|
|
@ -389,6 +393,7 @@ public:
|
|||
}
|
||||
#endif
|
||||
|
||||
llassert(size[0] >= gOctreeMinSize*0.5f);
|
||||
//make the new kid
|
||||
child = new LLOctreeNode<T>(center, size, this);
|
||||
addChild(child);
|
||||
|
|
@ -798,6 +803,8 @@ public:
|
|||
this->setSize(size2);
|
||||
this->updateMinMax();
|
||||
|
||||
llassert(size[0] >= gOctreeMinSize);
|
||||
|
||||
//copy our children to a new branch
|
||||
LLOctreeNode<T>* newnode = new LLOctreeNode<T>(center, size, this);
|
||||
|
||||
|
|
|
|||
|
|
@ -94,8 +94,11 @@ attributedStringInfo getSegments(NSAttributedString *str)
|
|||
// Force a high quality update after live resizing
|
||||
- (void) viewDidEndLiveResize
|
||||
{
|
||||
NSSize size = [self frame].size;
|
||||
callResize(size.width, size.height);
|
||||
if (NSAppKitVersionNumber < NSAppKitVersionNumber10_7)
|
||||
{
|
||||
NSSize size = [self frame].size;
|
||||
callResize(size.width, size.height);
|
||||
}
|
||||
}
|
||||
|
||||
- (unsigned long)getVramSize
|
||||
|
|
@ -126,8 +129,11 @@ attributedStringInfo getSegments(NSAttributedString *str)
|
|||
|
||||
- (void)windowResized:(NSNotification *)notification;
|
||||
{
|
||||
//NSSize size = [self frame].size;
|
||||
//callResize(size.width, size.height);
|
||||
if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_7)
|
||||
{
|
||||
NSSize size = [self frame].size;
|
||||
callResize(size.width, size.height);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
|
|
|
|||
|
|
@ -10321,6 +10321,18 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<integer>0</integer>
|
||||
</map>
|
||||
|
||||
<key>OctreeMinimumNodeSize</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Minimum size of any octree node</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.01</real>
|
||||
</map>
|
||||
|
||||
<key>OctreeStaticObjectSizeFactor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -577,6 +577,17 @@
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>FSKeywordCaseSensitive</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Keywords are case-sensitive</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>FSKeywords</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
@ -656,7 +667,18 @@
|
|||
<key>UseMoveLock</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Use the client LSL bridge for movelock</string>
|
||||
<string>Use the client LSL Bridge for movelock</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RelockMoveLockAfterMovement</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>If movelock built-in into LSL Bridge is active, then lock and unlock position after stopping or starting movement</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ mat4 getObjectSkinnedTransform();
|
|||
void main()
|
||||
{
|
||||
vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
|
||||
|
||||
|
||||
mat4 mat = getObjectSkinnedTransform();
|
||||
|
||||
mat = modelview_matrix * mat;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
//http bridge script v.2.8
|
||||
//http bridge script v.2.9
|
||||
//Firestorm
|
||||
//Tozh Taurog, Arrehn Oberlander, Tonya Souther
|
||||
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
integer UNKNOWN_VIEWER = 1;
|
||||
integer META_CONTROL = 1024; // Control value to do nothing; for no-script sims
|
||||
string bridgeAuth = "BRIDGEKEY"; // Filled in dynamically
|
||||
string bridgeVersion = "2.8"; // This should match fslslbridge.cpp
|
||||
string bridgeVersion = "2.9"; // This should match fslslbridge.cpp
|
||||
string bridgeURL;
|
||||
string latestURL;
|
||||
integer debug = FALSE;
|
||||
|
|
@ -55,6 +55,8 @@
|
|||
|
||||
// Movelock
|
||||
integer useMoveLock = FALSE;
|
||||
integer relockMoveLockAfterMovement = FALSE;
|
||||
integer relockIsUserMoving = FALSE;
|
||||
|
||||
// Flight assist
|
||||
float MIN_SPEED = 2.0;
|
||||
|
|
@ -132,7 +134,7 @@
|
|||
|
||||
if (llGetAttached() != 0)
|
||||
{
|
||||
llRequestPermissions(llGetOwner(),PERMISSION_TAKE_CONTROLS);
|
||||
llRequestPermissions(owner, PERMISSION_TAKE_CONTROLS);
|
||||
}
|
||||
|
||||
// Assume the worst and let the viewer convince us otherwise
|
||||
|
|
@ -148,6 +150,13 @@
|
|||
// Check the state of movelock, relock if needed
|
||||
if (useMoveLock)
|
||||
{
|
||||
if (relockMoveLockAfterMovement)
|
||||
{
|
||||
if (llGetAttached())
|
||||
{
|
||||
request_control_perms();
|
||||
}
|
||||
}
|
||||
//debugOutput("Movelock true, going to movelock_init");
|
||||
movelock_init();
|
||||
}
|
||||
|
|
@ -316,6 +325,18 @@
|
|||
llStopMoveToTarget();
|
||||
}
|
||||
}
|
||||
else if (cmd == "RelockMoveLockAfterMovement")
|
||||
{
|
||||
//debugOutput("Parsing params: " + llList2String(commandList, 1));
|
||||
relockMoveLockAfterMovement = llList2Integer(commandList, 1);
|
||||
if (relockMoveLockAfterMovement)
|
||||
{
|
||||
if (llGetAttached())
|
||||
{
|
||||
request_control_perms();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -633,14 +654,9 @@ reportTag(key av, integer tagIdx)
|
|||
last_time = time;
|
||||
}
|
||||
|
||||
flight_take_controls()
|
||||
request_control_perms()
|
||||
{
|
||||
llTakeControls(CONTROL_UP|CONTROL_DOWN, TRUE, TRUE);
|
||||
}
|
||||
|
||||
flight_request_perms()
|
||||
{
|
||||
flight_take_controls();
|
||||
llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_LEFT | CONTROL_RIGHT | CONTROL_UP | CONTROL_DOWN, TRUE, TRUE);
|
||||
}
|
||||
|
||||
flight_init()
|
||||
|
|
@ -655,7 +671,7 @@ reportTag(key av, integer tagIdx)
|
|||
falling = -1;
|
||||
hovering = -1;
|
||||
if (llGetAttached())
|
||||
flight_request_perms();
|
||||
request_control_perms();
|
||||
flight_set_tick(SLOW_TICK);
|
||||
}
|
||||
|
||||
|
|
@ -695,7 +711,7 @@ default
|
|||
on_rez(integer i)
|
||||
{
|
||||
// We don't want to be rezzed without being attached. Insure we don't create litter.
|
||||
llSetPrimitiveParams([PRIM_TEMP_ON_REZ, TRUE]);
|
||||
llSetLinkPrimitiveParamsFast(LINK_SET, [PRIM_TEMP_ON_REZ, TRUE]);
|
||||
// Force Movelock variable to false here and allow attach() to decide via initBridge(), if we're on Firestorm and login relock can be turned off if needed.
|
||||
// on_rez() will be triggered prior to attach() when attaching from inventory or during login, but not prior to state_entry().
|
||||
useMoveLock = FALSE;
|
||||
|
|
@ -720,8 +736,10 @@ default
|
|||
{
|
||||
if (i)
|
||||
{
|
||||
if (useFlightAssist)
|
||||
flight_take_controls();
|
||||
if (useFlightAssist || useMoveLock)
|
||||
{
|
||||
request_control_perms();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take control for value that does nothing, in order to work in no-script sims
|
||||
|
|
@ -732,6 +750,24 @@ default
|
|||
|
||||
control(key id, integer level, integer edge)
|
||||
{
|
||||
|
||||
if (useMoveLock && relockMoveLockAfterMovement)
|
||||
{
|
||||
if (level & (CONTROL_FWD | CONTROL_BACK | CONTROL_LEFT | CONTROL_RIGHT | CONTROL_UP | CONTROL_DOWN))
|
||||
{
|
||||
if (relockIsUserMoving == FALSE)
|
||||
{
|
||||
relockIsUserMoving = TRUE;
|
||||
llStopMoveToTarget();
|
||||
}
|
||||
}
|
||||
else if (relockIsUserMoving == TRUE)
|
||||
{
|
||||
relockIsUserMoving = FALSE;
|
||||
movelock_init();
|
||||
}
|
||||
}
|
||||
|
||||
if ((llGetAgentInfo(owner) & AGENT_FLYING) && useFlightAssist)
|
||||
{
|
||||
controls = 0;
|
||||
|
|
@ -740,6 +776,7 @@ default
|
|||
if (controls > 0)
|
||||
flight_check_boost();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
changed(integer change)
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@
|
|||
FSKeywords::FSKeywords()
|
||||
{
|
||||
gSavedPerAccountSettings.getControl("FSKeywords")->getSignal()->connect(boost::bind(&FSKeywords::updateKeywords, this));
|
||||
gSavedPerAccountSettings.getControl("FSKeywordCaseSensitive")->getSignal()->connect(boost::bind(&FSKeywords::updateKeywords, this));
|
||||
updateKeywords();
|
||||
}
|
||||
|
||||
|
|
@ -50,7 +51,10 @@ FSKeywords::~FSKeywords()
|
|||
void FSKeywords::updateKeywords()
|
||||
{
|
||||
std::string s = gSavedPerAccountSettings.getString("FSKeywords");
|
||||
LLStringUtil::toLower(s);
|
||||
if (!gSavedPerAccountSettings.getBOOL("FSKeywordCaseSensitive"))
|
||||
{
|
||||
LLStringUtil::toLower(s);
|
||||
}
|
||||
boost::regex re(",");
|
||||
boost::sregex_token_iterator begin(s.begin(), s.end(), re, -1), end;
|
||||
mWordList.clear();
|
||||
|
|
@ -65,13 +69,17 @@ bool FSKeywords::chatContainsKeyword(const LLChat& chat, bool is_local)
|
|||
static LLCachedControl<bool> sFSKeywordOn(gSavedPerAccountSettings, "FSKeywordOn", false);
|
||||
static LLCachedControl<bool> sFSKeywordInChat(gSavedPerAccountSettings, "FSKeywordInChat", false);
|
||||
static LLCachedControl<bool> sFSKeywordInIM(gSavedPerAccountSettings, "FSKeywordInIM", false);
|
||||
static LLCachedControl<bool> sFSKeywordCaseSensitive(gSavedPerAccountSettings, "FSKeywordCaseSensitive", false);
|
||||
if (!sFSKeywordOn ||
|
||||
(is_local && !sFSKeywordInChat) ||
|
||||
(!is_local && !sFSKeywordInIM))
|
||||
return FALSE;
|
||||
|
||||
std::string source(chat.mText);
|
||||
LLStringUtil::toLower(source);
|
||||
if (!sFSKeywordCaseSensitive)
|
||||
{
|
||||
LLStringUtil::toLower(source);
|
||||
}
|
||||
|
||||
for(U32 i=0; i < mWordList.size(); i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -67,10 +67,10 @@
|
|||
const std::string FS_BRIDGE_FOLDER = "#LSL Bridge";
|
||||
const std::string FS_BRIDGE_CONTAINER_FOLDER = "Landscaping";
|
||||
const U32 FS_BRIDGE_MAJOR_VERSION = 2;
|
||||
const U32 FS_BRIDGE_MINOR_VERSION = 8;
|
||||
const U32 FS_BRIDGE_MINOR_VERSION = 9;
|
||||
const U32 FS_MAX_MINOR_VERSION = 99;
|
||||
|
||||
//current script version is 2.8
|
||||
//current script version is 2.9
|
||||
const std::string UPLOAD_SCRIPT_CURRENT = "EBEDD1D2-A320-43f5-88CF-DD47BBCA5DFB.lsltxt";
|
||||
|
||||
//
|
||||
|
|
@ -221,6 +221,7 @@ bool FSLSLBridge::lslToViewer(const std::string& message, const LLUUID& fromID,
|
|||
//then check options use
|
||||
updateBoolSettingValue("UseLSLFlightAssist");
|
||||
updateBoolSettingValue("UseMoveLock");
|
||||
updateBoolSettingValue("RelockMoveLockAfterMovement");
|
||||
updateBoolSettingValue("FSPublishRadarTag");
|
||||
mIsFirstCallDone = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -1623,6 +1623,17 @@ void LLDrawPoolAvatar::getRiggedGeometry(LLFace* face, LLPointer<LLVertexBuffer>
|
|||
face->setPoolType(LLDrawPool::POOL_AVATAR);
|
||||
}
|
||||
|
||||
//let getGeometryVolume know if a texture matrix is in play
|
||||
if (face->mTextureMatrix)
|
||||
{
|
||||
face->setState(LLFace::TEXTURE_ANIM);
|
||||
}
|
||||
else
|
||||
{
|
||||
face->clearState(LLFace::TEXTURE_ANIM);
|
||||
}
|
||||
|
||||
|
||||
//llinfos << "Rebuilt face " << face->getTEOffset() << " of " << face->getDrawable() << " at " << gFrameTimeSeconds << llendl;
|
||||
face->getGeometryVolume(*volume, face->getTEOffset(), mat_vert, mat_normal, offset, true);
|
||||
|
||||
|
|
|
|||
|
|
@ -1656,7 +1656,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
|
|||
do_xform = false;
|
||||
}
|
||||
|
||||
if (getVirtualSize() >= MIN_TEX_ANIM_SIZE)
|
||||
if (getVirtualSize() >= MIN_TEX_ANIM_SIZE || isState(LLFace::RIGGED))
|
||||
{ //don't override texture transform during tc bake
|
||||
tex_mode = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -220,6 +220,7 @@ bool callback_clear_cache(const LLSD& notification, const LLSD& response);
|
|||
bool callback_clear_inventory_cache(const LLSD& notification, const LLSD& response);
|
||||
void handleFlightAssistOptionChanged(const LLSD& newvalue);
|
||||
void handleMovelockOptionChanged(const LLSD& newvalue);
|
||||
void handleMovelockAfterMoveOptionChanged(const LLSD& newvalue);
|
||||
bool callback_clear_settings(const LLSD& notification, const LLSD& response);
|
||||
// <FS:AW opensim search support>
|
||||
bool callback_clear_debug_search(const LLSD& notification, const LLSD& response);
|
||||
|
|
|
|||
|
|
@ -200,5 +200,9 @@ LLPointer<LLCredential> LLLoginHandler::loadSavedUserLoginInfo()
|
|||
return gSecAPIHandler->createCredential(identifier["first_name"].asString() + " " + identifier["last_name"].asString() + "@" +LLGridManager::getInstance()->getGrid(),
|
||||
identifier, authenticator);
|
||||
}
|
||||
return NULL;
|
||||
// <FS:Zi> Fix --autologin by loading the currently selected credentials if the above fails.
|
||||
// UserLoginInfo contains "First Last @ Grid" and gets set in LLPanelLogin::onClickConnect()
|
||||
// return NULL;
|
||||
return gSecAPIHandler->loadCredential(gSavedSettings.getLLSD("UserLoginInfo"));
|
||||
// </FS:Zi>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ U32 LLSpatialGroup::sNodeCount = 0;
|
|||
std::set<GLuint> LLSpatialGroup::sPendingQueries;
|
||||
|
||||
U32 gOctreeMaxCapacity;
|
||||
F32 gOctreeMinSize;
|
||||
|
||||
BOOL LLSpatialGroup::sNoDelete = FALSE;
|
||||
|
||||
|
|
|
|||
|
|
@ -410,6 +410,7 @@ static bool handleRepartition(const LLSD&)
|
|||
if (gPipeline.isInit())
|
||||
{
|
||||
gOctreeMaxCapacity = gSavedSettings.getU32("OctreeMaxNodeCapacity");
|
||||
gOctreeMinSize = gSavedSettings.getF32("OctreeMinimumNodeSize");
|
||||
gObjectList.repartitionObjects();
|
||||
}
|
||||
return true;
|
||||
|
|
@ -758,6 +759,11 @@ static void handleMovelockOptionChanged(const LLSD& newvalue)
|
|||
{
|
||||
FSLSLBridge::instance().updateBoolSettingValue("UseMoveLock", newvalue.asBoolean());
|
||||
}
|
||||
static void handleMovelockAfterMoveOptionChanged(const LLSD& newvalue)
|
||||
{
|
||||
FSLSLBridge::instance().updateBoolSettingValue("RelockMoveLockAfterMovement", newvalue.asBoolean());
|
||||
}
|
||||
// </FS:PP>
|
||||
|
||||
static void handleDecimalPrecisionChanged(const LLSD& newvalue)
|
||||
{
|
||||
|
|
@ -767,7 +773,6 @@ static void handleDecimalPrecisionChanged(const LLSD& newvalue)
|
|||
build_tools->changePrecision(newvalue);
|
||||
}
|
||||
}
|
||||
// </FS:PP>
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
|
@ -959,6 +964,7 @@ void settings_setup_listeners()
|
|||
gSavedPerAccountSettings.getControl("UseLSLFlightAssist")->getCommitSignal()->connect(boost::bind(&handleFlightAssistOptionChanged, _2));
|
||||
gSavedPerAccountSettings.getControl("FSPublishRadarTag")->getCommitSignal()->connect(boost::bind(&handlePublishRadarTagOptionChanged, _2));
|
||||
gSavedPerAccountSettings.getControl("UseMoveLock")->getCommitSignal()->connect(boost::bind(&handleMovelockOptionChanged, _2));
|
||||
gSavedPerAccountSettings.getControl("RelockMoveLockAfterMovement")->getCommitSignal()->connect(boost::bind(&handleMovelockAfterMoveOptionChanged, _2));
|
||||
gSavedSettings.getControl("FSBuildToolDecimalPrecision")->getCommitSignal()->connect(boost::bind(&handleDecimalPrecisionChanged, _2));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4306,6 +4306,7 @@ class FSSelfToggleMoveLock : public view_listener_t
|
|||
{
|
||||
if (LLGridManager::getInstance()->isInSecondLife())
|
||||
{
|
||||
make_ui_sound("UISndAlert");
|
||||
bool new_value = !gSavedPerAccountSettings.getBOOL("UseMoveLock");
|
||||
gSavedPerAccountSettings.setBOOL("UseMoveLock", new_value);
|
||||
if (new_value)
|
||||
|
|
|
|||
|
|
@ -222,6 +222,13 @@ public:
|
|||
// [/SL:KB]
|
||||
mHasMouseHover(false)
|
||||
{
|
||||
// <FS:Zi> Handle NULL pointers in mImage gracefully
|
||||
if(!mImage)
|
||||
{
|
||||
LL_WARNS("UI") << "NULL Image pointer for text segment of embedded inventory." << LL_ENDL;
|
||||
mImage=LLUI::getUIImage("Unknown_Icon");
|
||||
}
|
||||
// </FS:Zi>
|
||||
|
||||
mStyle = new LLStyle(LLStyle::Params().font(LLFontGL::getFontSansSerif()));
|
||||
mToolTip = inv_item->getName() + '\n' + inv_item->getDescription();
|
||||
|
|
@ -631,7 +638,13 @@ LLUIImagePtr LLEmbeddedItems::getItemImage(llwchar ext_char) const
|
|||
case LLAssetType::AT_ANIMATION: img_name = "Inv_Animation"; break;
|
||||
case LLAssetType::AT_GESTURE: img_name = "Inv_Gesture"; break;
|
||||
case LLAssetType::AT_MESH: img_name = "Inv_Mesh"; break;
|
||||
default: llassert(0);
|
||||
// <FS:Zi> Don't crash, try to recover gracefully
|
||||
// default: llassert(0);
|
||||
default:
|
||||
img_name = "Unknown_Icon";
|
||||
LL_WARNS("UI") << "Unknown asset type " << item->getType() << " for text segment of embedded inventory." << LL_ENDL;
|
||||
break;
|
||||
// </FS:Zi>
|
||||
}
|
||||
|
||||
return LLUI::getUIImage(img_name);
|
||||
|
|
|
|||
|
|
@ -3648,7 +3648,8 @@ void LLViewerWindow::updateUI()
|
|||
|
||||
updateLayout();
|
||||
|
||||
saveLastMouse(mCurrentMousePoint);
|
||||
// <FS:Ansariel> Backout MAINT-3250
|
||||
mLastMousePoint = mCurrentMousePoint;
|
||||
|
||||
// cleanup unused selections when no modal dialogs are open
|
||||
if (LLModalDialog::activeCount() == 0)
|
||||
|
|
@ -3890,7 +3891,8 @@ void LLViewerWindow::saveLastMouse(const LLCoordGL &point)
|
|||
// Store last mouse location.
|
||||
// If mouse leaves window, pretend last point was on edge of window
|
||||
|
||||
mLastMousePoint = mCurrentMousePoint;
|
||||
// <FS:Ansariel> Backout MAINT-3250
|
||||
//mLastMousePoint = mCurrentMousePoint;
|
||||
|
||||
if (point.mX < 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1696,6 +1696,16 @@ void LLWorldMapView::handleClick(S32 x, S32 y, MASK mask,
|
|||
}
|
||||
|
||||
|
||||
// <FS:Ansariel> Backout MAINT-3250
|
||||
BOOL outside_slop(S32 x, S32 y, S32 start_x, S32 start_y)
|
||||
{
|
||||
S32 dx = x - start_x;
|
||||
S32 dy = y - start_y;
|
||||
|
||||
return (dx <= -2 || 2 <= dx || dy <= -2 || 2 <= dy);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
BOOL LLWorldMapView::handleMouseDown( S32 x, S32 y, MASK mask )
|
||||
{
|
||||
gFocusMgr.setMouseCapture( this );
|
||||
|
|
@ -1778,7 +1788,10 @@ BOOL LLWorldMapView::handleHover( S32 x, S32 y, MASK mask )
|
|||
{
|
||||
if (hasMouseCapture())
|
||||
{
|
||||
if (mPanning || llabs(x - mMouseDownX) > 1 || llabs(y - mMouseDownY) > 1)
|
||||
// <FS:Ansariel> Backout MAINT-3250
|
||||
//if (mPanning || llabs(x - mMouseDownX) > 1 || llabs(y - mMouseDownY) > 1)
|
||||
if (mPanning || outside_slop(x, y, mMouseDownX, mMouseDownY))
|
||||
// </FS:Ansariel>
|
||||
{
|
||||
// just started panning, so hide cursor
|
||||
if (!mPanning)
|
||||
|
|
@ -1795,6 +1808,9 @@ BOOL LLWorldMapView::handleHover( S32 x, S32 y, MASK mask )
|
|||
sPanY += delta_y;
|
||||
sTargetPanX = sPanX;
|
||||
sTargetPanY = sPanY;
|
||||
|
||||
// <FS:Ansariel> Backout MAINT-3250
|
||||
gViewerWindow->moveCursorToCenter();
|
||||
}
|
||||
|
||||
// doesn't matter, cursor should be hidden
|
||||
|
|
|
|||
|
|
@ -506,6 +506,7 @@ void LLPipeline::init()
|
|||
refreshCachedSettings();
|
||||
|
||||
gOctreeMaxCapacity = gSavedSettings.getU32("OctreeMaxNodeCapacity");
|
||||
gOctreeMinSize = gSavedSettings.getF32("OctreeMinimumNodeSize");
|
||||
sDynamicLOD = gSavedSettings.getBOOL("RenderDynamicLOD");
|
||||
sRenderBump = gSavedSettings.getBOOL("RenderObjectBump");
|
||||
sUseTriStrips = gSavedSettings.getBOOL("RenderUseTriStrips");
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
<menu_item_call label="Modellassistent..." name="Upload Model Wizard"/>
|
||||
<menu_item_call label="Mehrfach-Upload ([COST] pro Datei)..." name="Bulk Upload"/>
|
||||
<menu_item_call label="Hochlade-Berechtigungen (Standard) festlegen" name="perm prefs"/>
|
||||
<menu_item_call label="Linkset importieren..." name="import linkset"/>
|
||||
</menu>
|
||||
<menu_item_call label="Neuer Ordner" name="New Folder"/>
|
||||
<menu_item_call label="Neues Skript" name="New Script"/>
|
||||
|
|
|
|||
|
|
@ -249,6 +249,7 @@
|
|||
<check_box name="FSKeywordOn" label="Schlüsselwort-Benachrichtungen aktivieren"/>
|
||||
<check_box name="FSKeywordInChat" label="Lokalen Chat auf Schüsselwörter prüfen"/>
|
||||
<check_box name="FSKeywordInIM" label="Instant Messages und Gruppenchats auf Schlüsselwörter prüfen"/>
|
||||
<check_box name="FSKeywordCaseSensitive" label="Groß-/Kleinschreibung bei Schlüsselwörtern beachten"/>
|
||||
<text name="textFSKeywords">
|
||||
Schlüsselwörter (getrennt durch Komma):
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -43,7 +43,11 @@
|
|||
<check_box label="Soundeffekte beim Teleportieren abspielen" name="PlayTeleportSound"/>
|
||||
<check_box label="Nach einem Teleport immer fliegen" name="FSFlyAfterTeleport"/>
|
||||
<check_box label="Springen oder Kriechen gedrückt halten, um fliegen zu starten oder zu stoppen" name="automatic_fly"/>
|
||||
<text name="movelock_lbl">
|
||||
Falls Movelock in der LSL-Brücke aktiviert ist...
|
||||
</text>
|
||||
<check_box label="Movelock nach Teleport erneut aktivieren, falls zuvor aktiv" name="RelockMoveLockAfterRegionChange"/>
|
||||
<check_box label="Nachdem eine Bewegung gestoppt oder gestartet ist, Position sperren oder entsperren" name="RelockMoveLockAfterMovement"/>
|
||||
<text name="single_click_action_lbl">
|
||||
Einfacher Klick auf Land:
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -155,11 +155,12 @@
|
|||
length="1"
|
||||
height="14"
|
||||
layout="topleft"
|
||||
left_pad="-5"
|
||||
left="95"
|
||||
top="50"
|
||||
halign="left"
|
||||
name="image_quality_level"
|
||||
top_delta="0"
|
||||
width="80">
|
||||
width="115">
|
||||
([QLVL])
|
||||
</text>
|
||||
</layout_panel>
|
||||
|
|
|
|||
|
|
@ -70,6 +70,14 @@
|
|||
function="Floater.Toggle"
|
||||
parameter="perm_prefs" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Import Linkset..."
|
||||
visibility_control="FSEnableObjectExports"
|
||||
name="import linkset">
|
||||
<menu_item_call.on_click
|
||||
function="File.ImportLinkset"
|
||||
parameter="" />
|
||||
</menu_item_call>
|
||||
</menu>
|
||||
|
||||
<menu_item_call
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
<layout_stack
|
||||
animate="false"
|
||||
follows="all"
|
||||
height="275"
|
||||
height="375"
|
||||
layout="bottomleft"
|
||||
name="postcard_image_params_ls"
|
||||
left_delta="0"
|
||||
|
|
|
|||
|
|
@ -1611,6 +1611,7 @@
|
|||
name="FSKeywordOn"
|
||||
label="Enable Keyword Alerts"/>
|
||||
<check_box
|
||||
enabled_control="FSKeywordOn"
|
||||
layout="topleft"
|
||||
follows="left|top"
|
||||
top_delta="25"
|
||||
|
|
@ -1621,6 +1622,7 @@
|
|||
name="FSKeywordInChat"
|
||||
label="Look for Keywords In Local Chat"/>
|
||||
<check_box
|
||||
enabled_control="FSKeywordOn"
|
||||
layout="topleft"
|
||||
follows="left|top"
|
||||
top_delta="25"
|
||||
|
|
@ -1630,6 +1632,17 @@
|
|||
control_name="FSKeywordInIM"
|
||||
name="FSKeywordInIM"
|
||||
label="Look for Keywords In IMs and Group Chat"/>
|
||||
<check_box
|
||||
enabled_control="FSKeywordOn"
|
||||
layout="topleft"
|
||||
follows="left|top"
|
||||
top_delta="25"
|
||||
left="20"
|
||||
width="150"
|
||||
height="20"
|
||||
control_name="FSKeywordCaseSensitive"
|
||||
name="FSKeywordCaseSensitive"
|
||||
label="All Keywords are case-sensitive"/>
|
||||
<text
|
||||
layout="topleft"
|
||||
follows="left|top"
|
||||
|
|
@ -1641,6 +1654,7 @@
|
|||
Keywords (separated by commas):
|
||||
</text>
|
||||
<line_editor
|
||||
enabled_control="FSKeywordOn"
|
||||
follows="left|top"
|
||||
top_delta="25"
|
||||
left="20"
|
||||
|
|
@ -1650,6 +1664,7 @@
|
|||
width="450"/>
|
||||
|
||||
<check_box
|
||||
enabled_control="FSKeywordOn"
|
||||
layout="topleft"
|
||||
follows="left|top"
|
||||
top_delta="25"
|
||||
|
|
@ -1661,6 +1676,7 @@
|
|||
label="Enable Color Alert"/>
|
||||
|
||||
<color_swatch
|
||||
enabled_control="FSKeywordOn"
|
||||
control_name="FSKeywordColor"
|
||||
border.border_thickness="0"
|
||||
label_height="0"
|
||||
|
|
@ -1674,6 +1690,7 @@
|
|||
tool_tip="Click to open color picker"/>
|
||||
|
||||
<check_box
|
||||
enabled_control="FSKeywordOn"
|
||||
layout="topleft"
|
||||
follows="left|top"
|
||||
top_delta="25"
|
||||
|
|
|
|||
|
|
@ -423,27 +423,52 @@
|
|||
name="automatic_fly"
|
||||
width="237"
|
||||
top_pad="0"/>
|
||||
<check_box
|
||||
control_name="RelockMoveLockAfterRegionChange"
|
||||
enabled_control="UseLSLBridge"
|
||||
follows="left|top"
|
||||
height="20"
|
||||
label="If movelock is enabled, then always re-lock position after region change"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="RelockMoveLockAfterRegionChange"
|
||||
width="237"
|
||||
top_pad="0"/>
|
||||
|
||||
<text
|
||||
follows="left|top"
|
||||
type="string"
|
||||
length="1"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left="48"
|
||||
left="10"
|
||||
name="movelock_lbl"
|
||||
width="450"
|
||||
top_pad="5">
|
||||
If movelock built-in into LSL Bridge is active...
|
||||
</text>
|
||||
<check_box
|
||||
control_name="RelockMoveLockAfterRegionChange"
|
||||
enabled_control="UseLSLBridge"
|
||||
follows="left|top"
|
||||
height="20"
|
||||
label="Always re-lock position after region change"
|
||||
layout="topleft"
|
||||
left_delta="5"
|
||||
name="RelockMoveLockAfterRegionChange"
|
||||
width="237"
|
||||
top_pad="5"/>
|
||||
<check_box
|
||||
control_name="RelockMoveLockAfterMovement"
|
||||
enabled_control="UseLSLBridge"
|
||||
follows="left|top"
|
||||
height="20"
|
||||
label="Lock and unlock position after stopping or starting movement"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
name="RelockMoveLockAfterMovement"
|
||||
width="237"
|
||||
top_pad="0"/>
|
||||
|
||||
<text
|
||||
follows="left|top"
|
||||
type="string"
|
||||
length="1"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="single_click_action_lbl"
|
||||
width="150"
|
||||
top_pad="10">
|
||||
top_pad="20">
|
||||
Single click on land:
|
||||
</text>
|
||||
<combo_box
|
||||
|
|
@ -470,7 +495,7 @@
|
|||
length="1"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left="48"
|
||||
left="10"
|
||||
name="double_click_action_lbl"
|
||||
width="150"
|
||||
top_pad="10">
|
||||
|
|
@ -504,7 +529,7 @@
|
|||
label="Joystick Configuration"
|
||||
left="100"
|
||||
name="joystick_setup_button"
|
||||
top_pad="5"
|
||||
top_pad="15"
|
||||
width="155">
|
||||
<button.commit_callback
|
||||
function="Floater.Show"
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@
|
|||
<layout_stack
|
||||
animate="false"
|
||||
follows="all"
|
||||
height="275"
|
||||
height="325"
|
||||
layout="bottomleft"
|
||||
name="local_image_params_ls"
|
||||
left_delta="0"
|
||||
|
|
|
|||
|
|
@ -1,22 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<menu name="menu_inventory_add">
|
||||
<menu label="Załaduj" name="upload">
|
||||
<menu_item_call label="Obraz ([COST])..." name="Upload Image"/>
|
||||
<menu_item_call label="Teksturę ([COST])..." name="Upload Image"/>
|
||||
<menu_item_call label="Dźwięk ([COST])..." name="Upload Sound"/>
|
||||
<menu_item_call label="Animację ([COST])..." name="Upload Animation"/>
|
||||
<menu_item_call label="Model meszowy..." name="Upload Model"/>
|
||||
<menu_item_call label="Zbiór plików ([COST] za jeden)..." name="Bulk Upload"/>
|
||||
<menu_item_call label="Zbiór wielu plików ([COST] za plik)..." name="Bulk Upload"/>
|
||||
<menu_item_call label="Ustaw domyślne uprawnienia ładowania" name="perm prefs"/>
|
||||
<menu_item_call label="Importuj zbiór części..." name="import linkset"/>
|
||||
</menu>
|
||||
<menu_item_call label="Nowy folder" name="New Folder"/>
|
||||
<menu_item_call label="Nowy skrypt" name="New Script"/>
|
||||
<menu_item_call label="Nowa nota" name="New Note"/>
|
||||
<menu_item_call label="Nowy gest" name="New Gesture"/>
|
||||
<menu label="Nowe Ubranie" name="New Clothes">
|
||||
<menu label="Nowe ubranie" name="New Clothes">
|
||||
<menu_item_call label="Nowa koszula" name="New Shirt"/>
|
||||
<menu_item_call label="Nowe spodnie" name="New Pants"/>
|
||||
<menu_item_call label="Nowe buty" name="New Shoes"/>
|
||||
<menu_item_call label="Nowe skarpetki" name="New Socks"/>
|
||||
<menu_item_call label="Nowe skarpety" name="New Socks"/>
|
||||
<menu_item_call label="Nowa kurtka" name="New Jacket"/>
|
||||
<menu_item_call label="Nowa spódnica" name="New Skirt"/>
|
||||
<menu_item_call label="Nowe rękawiczki" name="New Gloves"/>
|
||||
|
|
@ -26,7 +27,7 @@
|
|||
<menu_item_call label="Nowy tatuaż" name="New Tattoo"/>
|
||||
<menu_item_call label="Nowa fizyka" name="New Physics"/>
|
||||
</menu>
|
||||
<menu label="Nowa Część Ciała" name="New Body Parts">
|
||||
<menu label="Nowa część ciała" name="New Body Parts">
|
||||
<menu_item_call label="Nowy kształt" name="New Shape"/>
|
||||
<menu_item_call label="Nowa skórka" name="New Skin"/>
|
||||
<menu_item_call label="Nowe włosy" name="New Hair"/>
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
<menu_item_call label="Animację ([COST])..." name="Upload Animation"/>
|
||||
<menu_item_call label="Model meszowy..." name="Upload Model"/>
|
||||
<menu_item_call label="Zbiór wielu plików..." name="Bulk Upload"/>
|
||||
<menu_item_call label="Ustaw domyślne uprawnienia dla ładowania" name="perm prefs"/>
|
||||
<menu_item_call label="Ustaw domyślne uprawnienia ładowania" name="perm prefs"/>
|
||||
<menu_item_call label="Importuj zbiór części..." name="import linkset"/>
|
||||
</menu>
|
||||
<menu_item_call label="Uzyskaj status administratora" name="Request Admin Options"/>
|
||||
|
|
@ -207,7 +207,7 @@
|
|||
<menu_item_call label="Animację ([COST])..." name="Upload Animation"/>
|
||||
<menu_item_call label="Model meszowy..." name="Upload Model"/>
|
||||
<menu_item_call label="Zbiór wielu plików ([COST] za plik)..." name="Bulk Upload"/>
|
||||
<menu_item_call label="Ustaw domyślne uprawnienia dla ładowania" name="perm prefs"/>
|
||||
<menu_item_call label="Ustaw domyślne uprawnienia ładowania" name="perm prefs"/>
|
||||
<menu_item_call label="Importuj zbiór części..." name="import linkset"/>
|
||||
</menu>
|
||||
<menu_item_call label="Cofnij" name="Undo"/>
|
||||
|
|
|
|||
|
|
@ -230,6 +230,7 @@
|
|||
<check_box name="FSKeywordOn" label="Włącz detektor słów"/>
|
||||
<check_box name="FSKeywordInChat" label="Szukaj słów w Czacie Lokalnym"/>
|
||||
<check_box name="FSKeywordInIM" label="Szukaj słów w IM i czatach grupowych"/>
|
||||
<check_box name="FSKeywordCaseSensitive" label="Bierz pod uwagę wielkość liter w szukanych słowach"/>
|
||||
<text name="textFSKeywords">
|
||||
Szukane słowa (oddzielone przecinkami):
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,11 @@
|
|||
<check_box label="Odtwórz dźwięk podczas teleportacji" name="PlayTeleportSound"/>
|
||||
<check_box label="Zawsze lataj po teleportacji" name="FSFlyAfterTeleport"/>
|
||||
<check_box label="Przytrzymaj klawisz skoku lub kucania, aby zacząć lub przestać latać" name="automatic_fly"/>
|
||||
<check_box label="Zawsze blokuj ponownie pozycję po zmianie regionu, jeśli unieruchamianie jest włączone" name="RelockMoveLockAfterRegionChange"/>
|
||||
<text name="movelock_lbl">
|
||||
Jeśli unieruchamianie wbudowane w Most LSL jest aktywne...
|
||||
</text>
|
||||
<check_box label="Zawsze blokuj ponownie pozycję po zmianie regionu" name="RelockMoveLockAfterRegionChange"/>
|
||||
<check_box label="Blokuj i odblokowywuj pozycję po zakończeniu lub rozpoczęciu ruchu" name="RelockMoveLockAfterMovement"/>
|
||||
<text name="single_click_action_lbl">
|
||||
Pojedynczy klik na ziemi:
|
||||
</text>
|
||||
|
|
|
|||
Loading…
Reference in New Issue