Merge Firestorm tip

Ansariel 2014-05-05 18:46:45 +02:00
commit 7e684498ac
32 changed files with 274 additions and 62 deletions

View File

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

View File

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

View File

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

View File

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

View File

@ -40,7 +40,7 @@ mat4 getObjectSkinnedTransform();
void main()
{
vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy;
mat4 mat = getObjectSkinnedTransform();
mat = modelview_matrix * mat;

View File

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

View File

@ -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++)
{

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -80,6 +80,7 @@ U32 LLSpatialGroup::sNodeCount = 0;
std::set<GLuint> LLSpatialGroup::sPendingQueries;
U32 gOctreeMaxCapacity;
F32 gOctreeMinSize;
BOOL LLSpatialGroup::sNoDelete = FALSE;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -37,7 +37,7 @@
<layout_stack
animate="false"
follows="all"
height="275"
height="375"
layout="bottomleft"
name="postcard_image_params_ls"
left_delta="0"

View File

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

View File

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

View File

@ -83,7 +83,7 @@
<layout_stack
animate="false"
follows="all"
height="275"
height="325"
layout="bottomleft"
name="local_image_params_ls"
left_delta="0"

View File

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

View File

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

View File

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

View File

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