Merge branch 'master' of https://github.com/Shyotl/SingularityViewer
This commit is contained in:
@@ -66,7 +66,7 @@ if (EXISTS ${LIBS_CLOSED_DIR}llkdu AND NOT STANDALONE)
|
||||
add_subdirectory(${LIBS_CLOSED_PREFIX}llkdu)
|
||||
endif (EXISTS ${LIBS_CLOSED_DIR}llkdu AND NOT STANDALONE)
|
||||
|
||||
add_subdirectory(${LIBS_OPEN_PREFIX}lscript)
|
||||
#add_subdirectory(${LIBS_OPEN_PREFIX}lscript)
|
||||
|
||||
if (WINDOWS AND EXISTS ${LIBS_CLOSED_DIR}copy_win_scripts)
|
||||
add_subdirectory(${LIBS_CLOSED_PREFIX}copy_win_scripts)
|
||||
|
||||
@@ -60,7 +60,7 @@ set(cmake_SOURCE_FILES
|
||||
LLVFS.cmake
|
||||
LLWindow.cmake
|
||||
LLXML.cmake
|
||||
LScript.cmake
|
||||
# LScript.cmake
|
||||
Linking.cmake
|
||||
NDOF.cmake
|
||||
OPENAL.cmake
|
||||
|
||||
@@ -81,6 +81,33 @@ public:
|
||||
virtual void traverse(const LLOctreeNode<T>* node);
|
||||
};
|
||||
|
||||
struct OctreeGuard
|
||||
{
|
||||
template <typename T>
|
||||
OctreeGuard(const LLOctreeNode<T>* node)
|
||||
{mNode = (void*)node;getNodes().push_back(this);}
|
||||
~OctreeGuard()
|
||||
{llassert_always(getNodes().back() == this); getNodes().pop_back();}
|
||||
template <typename T>
|
||||
static bool checkGuarded(const LLOctreeNode<T>* node)
|
||||
{
|
||||
for(std::vector<OctreeGuard*>::const_iterator it=getNodes().begin();it != getNodes().end();++it)
|
||||
{
|
||||
if((*it)->mNode == node)
|
||||
{
|
||||
OCT_ERRS << "!!! MANIPULATING OCTREE BRANCH DURING ITERATION !!!" << llendl;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
static std::vector<OctreeGuard*>& getNodes()
|
||||
{
|
||||
static std::vector<OctreeGuard*> gNodes;
|
||||
return gNodes;
|
||||
}
|
||||
void* mNode;
|
||||
};
|
||||
template <class T>
|
||||
class LLOctreeNode : public LLTreeNode<T>
|
||||
{
|
||||
@@ -246,8 +273,8 @@ public:
|
||||
|
||||
U32 getElementCount() const { return mElementCount; }
|
||||
bool isEmpty() const { return mElementCount == 0; }
|
||||
element_list& getData() { return mData; }
|
||||
const element_list& getData() const { return mData; }
|
||||
//element_list& getData() { return mData; }
|
||||
//const element_list& getData() const { return mData; }
|
||||
element_iter getDataBegin() { return mData; }
|
||||
element_iter getDataEnd() { return mDataEnd; }
|
||||
const_element_iter getDataBegin() const { return mData; }
|
||||
@@ -317,6 +344,7 @@ public:
|
||||
|
||||
virtual bool insert(T* data)
|
||||
{
|
||||
OctreeGuard::checkGuarded(this);
|
||||
if (data == NULL || data->getBinIndex() != -1)
|
||||
{
|
||||
OCT_ERRS << "!!! INVALID ELEMENT ADDED TO OCTREE BRANCH !!!" << llendl;
|
||||
@@ -433,7 +461,7 @@ public:
|
||||
|
||||
void _remove(T* data, S32 i)
|
||||
{ //precondition -- mElementCount > 0, idx is in range [0, mElementCount)
|
||||
|
||||
OctreeGuard::checkGuarded(this);
|
||||
mElementCount--;
|
||||
data->setBinIndex(-1);
|
||||
|
||||
@@ -463,6 +491,7 @@ public:
|
||||
|
||||
bool remove(T* data)
|
||||
{
|
||||
OctreeGuard::checkGuarded(this);
|
||||
S32 i = data->getBinIndex();
|
||||
|
||||
if (i >= 0 && i < (S32)mElementCount)
|
||||
@@ -508,6 +537,7 @@ public:
|
||||
|
||||
void removeByAddress(T* data)
|
||||
{
|
||||
OctreeGuard::checkGuarded(this);
|
||||
for (U32 i = 0; i < mElementCount; ++i)
|
||||
{
|
||||
if (mData[i] == data)
|
||||
@@ -527,6 +557,7 @@ public:
|
||||
|
||||
void clearChildren()
|
||||
{
|
||||
OctreeGuard::checkGuarded(this);
|
||||
mChildCount = 0;
|
||||
|
||||
U32* foo = (U32*) mChildMap;
|
||||
@@ -587,6 +618,7 @@ public:
|
||||
OCT_ERRS <<"Octree node has too many children... why?" << llendl;
|
||||
}
|
||||
#endif
|
||||
OctreeGuard::checkGuarded(this);
|
||||
|
||||
mChildMap[child->getOctant()] = mChildCount;
|
||||
|
||||
@@ -606,6 +638,8 @@ public:
|
||||
|
||||
void removeChild(S32 index, BOOL destroy = FALSE)
|
||||
{
|
||||
OctreeGuard::checkGuarded(this);
|
||||
|
||||
for (U32 i = 0; i < this->getListenerCount(); i++)
|
||||
{
|
||||
oct_listener* listener = getOctListener(i);
|
||||
|
||||
@@ -48,6 +48,7 @@ extern LLGLSLShader gPostColorFilterProgram;
|
||||
extern LLGLSLShader gPostNightVisionProgram;
|
||||
extern LLGLSLShader gPostGaussianBlurProgram;
|
||||
extern LLGLSLShader gPostPosterizeProgram;
|
||||
extern LLGLSLShader gPostMotionBlurProgram;
|
||||
|
||||
static const unsigned int NOISE_SIZE = 512;
|
||||
|
||||
@@ -259,6 +260,55 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class LLMotionShader : public LLPostProcessShader
|
||||
{
|
||||
private:
|
||||
LLShaderSetting<bool> mEnabled;
|
||||
LLShaderSetting<S32> mStrength;
|
||||
public:
|
||||
LLMotionShader() :
|
||||
mEnabled("enable_motionblur",false),
|
||||
mStrength("blur_strength",false)
|
||||
{
|
||||
mSettings.push_back(&mEnabled);
|
||||
mSettings.push_back(&mStrength);
|
||||
}
|
||||
bool isEnabled() { return mEnabled && gPostMotionBlurProgram.mProgramObject; }
|
||||
S32 getColorChannel() { return 0; }
|
||||
S32 getDepthChannel() { return 1; }
|
||||
QuadType bind()
|
||||
{
|
||||
if(!isEnabled())
|
||||
{
|
||||
return QUAD_NONE;
|
||||
}
|
||||
|
||||
glh::matrix4f inv_proj(gGLModelView);
|
||||
inv_proj.mult_left(gGLProjection);
|
||||
inv_proj = inv_proj.inverse();
|
||||
glh::matrix4f prev_proj(gGLPreviousModelView);
|
||||
prev_proj.mult_left(gGLProjection);
|
||||
|
||||
LLVector2 screen_rect = LLPostProcess::getInstance()->getDimensions();
|
||||
|
||||
gPostMotionBlurProgram.bind();
|
||||
gPostMotionBlurProgram.uniformMatrix4fv("prev_proj", 1, GL_FALSE, prev_proj.m);
|
||||
gPostMotionBlurProgram.uniformMatrix4fv("inv_proj", 1, GL_FALSE, inv_proj.m);
|
||||
gPostMotionBlurProgram.uniform2fv("screen_res", 1, screen_rect.mV);
|
||||
gPostMotionBlurProgram.uniform1i("blur_strength", mStrength);
|
||||
|
||||
return QUAD_NORMAL;
|
||||
}
|
||||
bool draw(U32 pass)
|
||||
{
|
||||
return pass == 1;
|
||||
}
|
||||
void unbind()
|
||||
{
|
||||
gPostMotionBlurProgram.unbind();
|
||||
}
|
||||
};
|
||||
|
||||
LLPostProcess::LLPostProcess(void) :
|
||||
mVBO(NULL),
|
||||
mDepthTexture(0),
|
||||
@@ -269,11 +319,13 @@ LLPostProcess::LLPostProcess(void) :
|
||||
mSelectedEffectInfo(LLSD::emptyMap()),
|
||||
mAllEffectInfo(LLSD::emptyMap())
|
||||
{
|
||||
mShaders.push_back(new LLMotionShader());
|
||||
mShaders.push_back(new LLColorFilterShader());
|
||||
mShaders.push_back(new LLNightVisionShader());
|
||||
mShaders.push_back(new LLGaussBlurShader());
|
||||
mShaders.push_back(new LLPosterizeShader());
|
||||
|
||||
|
||||
/* Do nothing. Needs to be updated to use our current shader system, and to work with the move into llrender.*/
|
||||
std::string pathName(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight", XML_FILENAME));
|
||||
LL_DEBUGS2("AppInit", "Shaders") << "Loading PostProcess Effects settings from " << pathName << LL_ENDL;
|
||||
|
||||
@@ -142,6 +142,9 @@ private:
|
||||
void drawOrthoQuad(QuadType type); //Finally draws fullscreen quad with the shader currently bound.
|
||||
|
||||
public:
|
||||
LLVector2 getDimensions() { return LLVector2(mScreenWidth,mScreenHeight); }
|
||||
|
||||
|
||||
// UI interaction
|
||||
// Getters
|
||||
inline LLSD const & getAllEffectInfo(void) const { return mAllEffectInfo; }
|
||||
|
||||
@@ -42,6 +42,7 @@ LLRender gGL;
|
||||
//Would be best to migrate these to LLMatrix4a and LLVector4a, but that's too divergent right now.
|
||||
LL_ALIGN_16(F32 gGLModelView[16]);
|
||||
LL_ALIGN_16(F32 gGLLastModelView[16]);
|
||||
LL_ALIGN_16(F32 gGLPreviousModelView[16]);
|
||||
LL_ALIGN_16(F32 gGLLastProjection[16]);
|
||||
LL_ALIGN_16(F32 gGLProjection[16]);
|
||||
LL_ALIGN_16(S32 gGLViewport[4]);
|
||||
|
||||
@@ -474,6 +474,7 @@ private:
|
||||
extern F32 gGLModelView[16];
|
||||
extern F32 gGLLastModelView[16];
|
||||
extern F32 gGLLastProjection[16];
|
||||
extern F32 gGLPreviousModelView[16];
|
||||
extern F32 gGLProjection[16];
|
||||
extern S32 gGLViewport[4];
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ include(LLUI)
|
||||
include(LLVFS)
|
||||
include(LLWindow)
|
||||
include(LLXML)
|
||||
include(LScript)
|
||||
#include(LScript)
|
||||
include(Linking)
|
||||
include(NDOF)
|
||||
include(GooglePerfTools)
|
||||
@@ -69,8 +69,8 @@ include_directories(
|
||||
${LLVFS_INCLUDE_DIRS}
|
||||
${LLWINDOW_INCLUDE_DIRS}
|
||||
${LLXML_INCLUDE_DIRS}
|
||||
${LSCRIPT_INCLUDE_DIRS}
|
||||
${LSCRIPT_INCLUDE_DIRS}/lscript_compile
|
||||
# ${LSCRIPT_INCLUDE_DIRS}
|
||||
# ${LSCRIPT_INCLUDE_DIRS}/lscript_compile
|
||||
)
|
||||
|
||||
set(viewer_SOURCE_FILES
|
||||
@@ -1556,7 +1556,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}
|
||||
${LLVFS_LIBRARIES}
|
||||
${LLWINDOW_LIBRARIES}
|
||||
${LLXML_LIBRARIES}
|
||||
${LSCRIPT_LIBRARIES}
|
||||
# ${LSCRIPT_LIBRARIES}
|
||||
${LLMATH_LIBRARIES}
|
||||
${LLCOMMON_LIBRARIES}
|
||||
${NDOF_LIBRARY}
|
||||
|
||||
373
indra/newview/app_settings/lsl_functions_os.xml
Normal file
373
indra/newview/app_settings/lsl_functions_os.xml
Normal file
@@ -0,0 +1,373 @@
|
||||
<?xml version="1.0"?>
|
||||
<llsd>
|
||||
<map>
|
||||
<!-- REGARDING NON SL-LSL FUNCTIONS (OSSL, aaFunctions, botFunctions) -->
|
||||
<!-- These additions should be posted underneath the llFunctions -->
|
||||
<!-- These functions pertain to OpenSimulator and are in no part applicable to SecondLife by Linden Labs -->
|
||||
<!-- The Current State of these functions are in flux and development is ongoing. Not all the functions are presently -->
|
||||
<!-- fully documented and therefore the description may be incomplete and require further attention. -->
|
||||
<!-- OpenSim & Aurora-Sim are written in C# and not CPP therefore some values for example "double = float" etc. are different. -->
|
||||
|
||||
<!-- OSSL corrections and syntax additions added + set initially in same order as found in IOSSL_Api.cs of Aurora-Sim & OpenSim Source -->
|
||||
<!-- updates added @ end of each subsection for update timeline maint. -->
|
||||
<!-- Updates by WhiteStar Magic -->
|
||||
|
||||
<!-- OSSL Functions COMMON to OpenSim & Aurora-Sim -->
|
||||
<key>osSetDynamicTextureURL</key>
|
||||
<map/>
|
||||
<key>osSetDynamicTextureURLBlend</key>
|
||||
<map/>
|
||||
<key>osSetDynamicTextureURLBlendFace</key>
|
||||
<map/>
|
||||
<key>osSetDynamicTextureData</key>
|
||||
<map/>
|
||||
<key>osSetDynamicTextureDataBlend</key>
|
||||
<map/>
|
||||
<key>osSetDynamicTextureDataBlendFace</key>
|
||||
<map/>
|
||||
<key>osGetTerrainHeight</key>
|
||||
<map/>
|
||||
<key>osSetTerrainHeight</key>
|
||||
<map/>
|
||||
<key>osTerrainFlush</key>
|
||||
<map/>
|
||||
<key>osRegionRestart</key>
|
||||
<map/>
|
||||
<key>osRegionNotice</key>
|
||||
<map/>
|
||||
<key>osConsoleCommand</key>
|
||||
<map/>
|
||||
<key>osSetParcelMediaURL</key>
|
||||
<map/>
|
||||
<key>osSetPrimFloatOnWater</key>
|
||||
<map/>
|
||||
<key>osSetParcelSIPAddress</key>
|
||||
<map/>
|
||||
<key>osGetAgentIP</key>
|
||||
<map/>
|
||||
<key>osGetAgents</key>
|
||||
<map/>
|
||||
<key>osTeleportAgent</key>
|
||||
<map/>
|
||||
<key>osTeleportOwner</key>
|
||||
<map/>
|
||||
<key>osAvatarPlayAnimation</key>
|
||||
<map/>
|
||||
<key>osAvatarStopAnimation</key>
|
||||
<map/>
|
||||
<key>osForceAttachToAvatar</key>
|
||||
<map/>
|
||||
<key>osForceDetachFromAvatar</key>
|
||||
<map/>
|
||||
<key>osMovePen</key>
|
||||
<map/>
|
||||
<key>osDrawLine</key>
|
||||
<map/>
|
||||
<key>osDrawText</key>
|
||||
<map/>
|
||||
<key>osDrawEllipse</key>
|
||||
<map/>
|
||||
<key>osDrawRectangle</key>
|
||||
<map/>
|
||||
<key>osDrawFilledRectangle</key>
|
||||
<map/>
|
||||
<key>osDrawPolygon</key>
|
||||
<map/>
|
||||
<key>osDrawFilledPolygon</key>
|
||||
<map/>
|
||||
<key>osSetFontSize</key>
|
||||
<map/>
|
||||
<key>osSetFontName</key>
|
||||
<map/>
|
||||
<key>osSetPenSize</key>
|
||||
<map/>
|
||||
<key>osSetPenColor</key>
|
||||
<map/>
|
||||
<key>osSetPenCap</key>
|
||||
<map/>
|
||||
<key>osDrawImage</key>
|
||||
<map/>
|
||||
<key>osGetDrawStringSize</key>
|
||||
<map/>
|
||||
<key>osList2Double</key>
|
||||
<map/>
|
||||
<key>osSetRegionWaterHeight</key>
|
||||
<map/>
|
||||
<key>osSetRegionSunSettings</key>
|
||||
<map/>
|
||||
<key>osSetEstateSunSettings</key>
|
||||
<map/>
|
||||
<key>osGetCurrentSunHour</key>
|
||||
<map/>
|
||||
<key>osGetSunParam</key>
|
||||
<map/>
|
||||
<key>osSetSunParam</key>
|
||||
<map/>
|
||||
<key>osWindActiveModelPluginName</key>
|
||||
<map/>
|
||||
<key>osSetWindParam</key>
|
||||
<map/>
|
||||
<key>osGetWindParam</key>
|
||||
<map/>
|
||||
<key>osParcelJoin</key>
|
||||
<map/>
|
||||
<key>osParcelSubdivide</key>
|
||||
<map/>
|
||||
<key>osSetParcelDetails</key>
|
||||
<map/>
|
||||
<key>osGetScriptEngineName</key>
|
||||
<map/>
|
||||
<key>osGetSimulatorVersion</key>
|
||||
<map/>
|
||||
<key>osParseJSON</key>
|
||||
<map/>
|
||||
<key>osParseJSONNew</key>
|
||||
<map/>
|
||||
<key>osMessageObject</key>
|
||||
<map/>
|
||||
<key>osMakeNotecard</key>
|
||||
<map/>
|
||||
<key>osGetNotecardLine</key>
|
||||
<map/>
|
||||
<key>osGetNotecard</key>
|
||||
<map/>
|
||||
<key>osGetNumberOfNotecardLines</key>
|
||||
<map/>
|
||||
<key>osAvatarName2Key</key>
|
||||
<map/>
|
||||
<key>osKey2Name</key>
|
||||
<map/>
|
||||
<key>osGetGridNick</key>
|
||||
<map/>
|
||||
<key>osGetGridName</key>
|
||||
<map/>
|
||||
<key>osGetGridLoginURI</key>
|
||||
<map/>
|
||||
<key>osGetGridHomeURI</key>
|
||||
<map/>
|
||||
<key>osGetGridGatekeeperURI</key>
|
||||
<map/>
|
||||
<key>osGetGridCustom</key>
|
||||
<map/>
|
||||
<key>osFormatString</key>
|
||||
<map/>
|
||||
<key>osMatchString</key>
|
||||
<map/>
|
||||
<key>osReplaceString</key>
|
||||
<map/>
|
||||
<key>osLoadedCreationDate</key>
|
||||
<map/>
|
||||
<key>osLoadedCreationTime</key>
|
||||
<map/>
|
||||
<key>osLoadedCreationID</key>
|
||||
<map/>
|
||||
<key>osGetLinkPrimitiveParams</key>
|
||||
<map/>
|
||||
<key>osGetMapTexture</key>
|
||||
<map/>
|
||||
<key>osGetRegionMapTexture</key>
|
||||
<map/>
|
||||
<key>osGetRegionStats</key>
|
||||
<map/>
|
||||
<key>osGetSimulatorMemory</key>
|
||||
<map/>
|
||||
<key>osKickAvatar</key>
|
||||
<map/>
|
||||
<key>osSetSpeed</key>
|
||||
<map/>
|
||||
<key>osCauseDamage</key>
|
||||
<map/>
|
||||
<key>osCauseHealing</key>
|
||||
<map/>
|
||||
<key>osGetPrimitiveParams</key>
|
||||
<map/>
|
||||
<key>osSetPrimitiveParams</key>
|
||||
<map/>
|
||||
<key>osSetProjectionParams</key>
|
||||
<map/>
|
||||
<key>osGetAvatarList</key>
|
||||
<map/>
|
||||
<key>osUnixTimeToTimestamp</key>
|
||||
<map/>
|
||||
<key>osGetInventoryDesc</key>
|
||||
<map/>
|
||||
<key>osInviteToGroup</key>
|
||||
<map/>
|
||||
<key>osEjectFromGroup</key>
|
||||
<map/>
|
||||
<key>osSetTerrainTexture</key>
|
||||
<map/>
|
||||
<key>osSetTerrainTextureHeight</key>
|
||||
<map/>
|
||||
|
||||
<!-- OSSL Functions OpenSim Unique -->
|
||||
<key>osSetStateEvents</key>
|
||||
<map/>
|
||||
<key>osIsNpc</key>
|
||||
<map/>
|
||||
<key>osNpcCreate</key>
|
||||
<map/>
|
||||
<key>osNpcSaveAppearance</key>
|
||||
<map/>
|
||||
<key>osNpcLoadAppearance</key>
|
||||
<map/>
|
||||
<key>osNpcGetPos</key>
|
||||
<map/>
|
||||
<key>osNpcMoveTo</key>
|
||||
<map/>
|
||||
<key>osNpcMoveToTarget</key>
|
||||
<map/>
|
||||
<key>osNpcGetOwner</key>
|
||||
<map/>
|
||||
<key>osNpcGetRot</key>
|
||||
<map/>
|
||||
<key>osNpcSetRot</key>
|
||||
<map/>
|
||||
<key>osNpcStopMoveToTarget</key>
|
||||
<map/>
|
||||
<key>osNpcSay</key>
|
||||
<map/>
|
||||
<key>osNpcSay</key>
|
||||
<map/>
|
||||
<key>osNpcSit</key>
|
||||
<map/>
|
||||
<key>osNpcStand</key>
|
||||
<map/>
|
||||
<key>osNpcRemove</key>
|
||||
<map/>
|
||||
<key>osNpcPlayAnimation</key>
|
||||
<map/>
|
||||
<key>osNpcStopAnimation</key>
|
||||
<map/>
|
||||
<key>osOwnerSaveAppearance</key>
|
||||
<map/>
|
||||
<key>osAgentSaveAppearance</key>
|
||||
<map/>
|
||||
<key>osNpcShout</key>
|
||||
<map/>
|
||||
<key>osNpcWhisper</key>
|
||||
<map/>
|
||||
|
||||
<!-- OSSL Functions Aurora-Sim Unique -->
|
||||
<key>osReturnObject</key>
|
||||
<map/>
|
||||
<key>osReturnObjects</key>
|
||||
<map/>
|
||||
<key>osShutDown</key>
|
||||
<map/>
|
||||
<key>osAddAgentToGroup</key>
|
||||
<map/>
|
||||
<key>osRezObject</key>
|
||||
<map/>
|
||||
|
||||
<!-- LightShare functions (Careminster Variant) -->
|
||||
<key>cmSetWindlightScene</key>
|
||||
<map/>
|
||||
<key>cmSetWindlightSceneTargeted</key>
|
||||
<map/>
|
||||
<key>cmGetWindlightScene</key>
|
||||
<map/>
|
||||
<!-- LightShare functions - alternate versions (os & aa variant) -->
|
||||
<key>lsSetWindlightScene</key>
|
||||
<map/>
|
||||
<key>lsSetWindlightSceneTargeted</key>
|
||||
<map/>
|
||||
<key>lsGetWindlightScene</key>
|
||||
<map/>
|
||||
|
||||
<!-- aaFunctions Aurora-Sim ONLY -->
|
||||
<key>aaSetCloudDensity</key>
|
||||
<map/>
|
||||
<key>aaUpdateDatabase</key>
|
||||
<map/>
|
||||
<key>aaQueryDatabase</key>
|
||||
<map/>
|
||||
<key>aaDeserializeXMLValues</key>
|
||||
<map/>
|
||||
<key>aaDeserializeXMLKeys</key>
|
||||
<map/>
|
||||
<key>aaSetConeOfSilence</key>
|
||||
<map/>
|
||||
<key>aaSerializeXML</key>
|
||||
<map/>
|
||||
<key>aaGetTeam</key>
|
||||
<map/>
|
||||
<key>aaGetHealth</key>
|
||||
<map/>
|
||||
<key>aaJoinCombat</key>
|
||||
<map/>
|
||||
<key>aaLeaveCombat</key>
|
||||
<map/>
|
||||
<key>aaJoinCombatTeam</key>
|
||||
<map/>
|
||||
<key>aaRequestCombatPermission</key>
|
||||
<map/>
|
||||
<key>aaThawAvatar</key>
|
||||
<map/>
|
||||
<key>aaFreezeAvatar</key>
|
||||
<map/>
|
||||
<key>aaGetTeamMembers</key>
|
||||
<map/>
|
||||
<key>aaGetLastOwner</key>
|
||||
<map/>
|
||||
<key>aaSayDistance</key>
|
||||
<map/>
|
||||
<key>aaSayTo</key>
|
||||
<map/>
|
||||
<key>aaGetWalkDisabled</key>
|
||||
<map/>
|
||||
<key>aaSetWalkDisabled</key>
|
||||
<map/>
|
||||
<key>aaGetFlyDisabled</key>
|
||||
<map/>
|
||||
<key>aaSetFlyDisabled</key>
|
||||
<map/>
|
||||
<key>aaAvatarFullName2Key</key>
|
||||
<map/>
|
||||
<key>aaRaiseError</key>
|
||||
<map/>
|
||||
<key>aaGetText</key>
|
||||
<map/>
|
||||
<key>aaGetTextColor</key>
|
||||
<map/>
|
||||
<key>aaSetEnv</key>
|
||||
<map/>
|
||||
<key>aaGetIsInfiniteRegion</key>
|
||||
<map/>
|
||||
<!-- botFunctions Aurora-Sim ONLY -->
|
||||
<key>botGetWaitingTime</key>
|
||||
<map/>
|
||||
<key>botSetMap</key>
|
||||
<map/>
|
||||
<key>botCreateBot</key>
|
||||
<map/>
|
||||
<key>botRemoveBot</key>
|
||||
<map/>
|
||||
<key>botPauseMovement</key>
|
||||
<map/>
|
||||
<key>botResumeMovement</key>
|
||||
<map/>
|
||||
<key>botFollowAvatar</key>
|
||||
<map/>
|
||||
<key>botStopFollowAvatar</key>
|
||||
<map/>
|
||||
<key>botSendChatMessage</key>
|
||||
<map/>
|
||||
<key>botSendIM</key>
|
||||
<map/>
|
||||
<key>botSetShouldFly</key>
|
||||
<map/>
|
||||
<key>botSitObject</key>
|
||||
<map/>
|
||||
<key>botStandUp</key>
|
||||
<map/>
|
||||
<key>botTouchObject</key>
|
||||
<map/>
|
||||
<key>botAddTag</key>
|
||||
<map/>
|
||||
<key>botGetBotsWithTag</key>
|
||||
<map/>
|
||||
<key>botRemoveBotsWithTag</key>
|
||||
<map/>
|
||||
</map>
|
||||
</llsd>
|
||||
1014
indra/newview/app_settings/lsl_functions_sl.xml
Normal file
1014
indra/newview/app_settings/lsl_functions_sl.xml
Normal file
File diff suppressed because it is too large
Load Diff
@@ -973,6 +973,17 @@
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AntiSpamGroupFeeInvites</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>When true, dialogs from group invites that require an entry fee will be blocked.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AntiSpamGroupNotices</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* @file colorFilterF.glsl
|
||||
*
|
||||
* Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
|
||||
* $License$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
#else
|
||||
#define frag_color gl_FragColor
|
||||
#endif
|
||||
|
||||
uniform sampler2DRect tex0;
|
||||
uniform sampler2DRect tex1;
|
||||
uniform mat4 inv_proj;
|
||||
uniform mat4 prev_proj;
|
||||
uniform vec2 screen_res;
|
||||
uniform int blur_strength;
|
||||
|
||||
VARYING vec2 vary_texcoord0;
|
||||
|
||||
#define SAMPLE_COUNT 10
|
||||
|
||||
vec4 getPosition(vec2 pos_screen, out vec4 ndc)
|
||||
{
|
||||
float depth = texture2DRect(tex1, pos_screen.xy).r;
|
||||
vec2 sc = pos_screen.xy*2.0;
|
||||
sc /= screen_res;
|
||||
sc -= vec2(1.0,1.0);
|
||||
ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0);
|
||||
vec4 pos = inv_proj * ndc;
|
||||
pos /= pos.w;
|
||||
pos.w = 1.0;
|
||||
return pos;
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
vec4 ndc;
|
||||
vec4 pos = getPosition(vary_texcoord0,ndc);
|
||||
vec4 prev_pos = prev_proj * pos;
|
||||
prev_pos/=prev_pos.w;
|
||||
prev_pos.w = 1.0;
|
||||
vec2 vel = ((ndc.xy-prev_pos.xy) * .5) * screen_res * .001 * blur_strength;
|
||||
vec3 color = texture2DRect(tex0, vary_texcoord0.st).rgb;
|
||||
vec2 texcoord = vary_texcoord0 + vel;
|
||||
for(int i = 1; i < SAMPLE_COUNT; ++i, texcoord += vel)
|
||||
{
|
||||
color += texture2DRect(tex0, texcoord.st).rgb;
|
||||
}
|
||||
frag_color = vec4(color / SAMPLE_COUNT, 1.0);
|
||||
}
|
||||
@@ -175,6 +175,8 @@
|
||||
<key>enable_gauss_blur</key>
|
||||
<boolean>0</boolean>
|
||||
<key>enable_posterize</key>
|
||||
<boolean>0</boolean>
|
||||
<key>enable_motionblur</key>
|
||||
<boolean>0</boolean>
|
||||
<key>gauss_blur_passes</key>
|
||||
<integer>2</integer>
|
||||
@@ -190,6 +192,8 @@
|
||||
<real>1</real>
|
||||
<key>posterize_layers</key>
|
||||
<real>10</real>
|
||||
<key>blur_strength</key>
|
||||
<real>10</real>
|
||||
</map>
|
||||
</map>
|
||||
</llsd>
|
||||
@@ -367,6 +367,7 @@ void LLPrefsAscentChat::refreshValues()
|
||||
mBlockAlertSpam = gSavedSettings.getBOOL("AntiSpamAlerts");
|
||||
mBlockFriendSpam = gSavedSettings.getBOOL("AntiSpamFriendshipOffers");
|
||||
mBlockGroupInviteSpam = gSavedSettings.getBOOL("AntiSpamGroupInvites");
|
||||
mBlockGroupFeeInviteSpam = gSavedSettings.getBOOL("AntiSpamGroupFeeInvites");
|
||||
mBlockGroupNoticeSpam = gSavedSettings.getBOOL("AntiSpamGroupNotices");
|
||||
mBlockItemOfferSpam = gSavedSettings.getBOOL("AntiSpamItemOffers");
|
||||
mBlockScriptSpam = gSavedSettings.getBOOL("AntiSpamScripts");
|
||||
@@ -583,6 +584,7 @@ void LLPrefsAscentChat::cancel()
|
||||
gSavedSettings.setBOOL("AntiSpamFriendshipOffers", mBlockFriendSpam);
|
||||
gSavedSettings.setBOOL("AntiSpamGroupNotices", mBlockGroupNoticeSpam);
|
||||
gSavedSettings.setBOOL("AntiSpamGroupInvites", mBlockGroupInviteSpam);
|
||||
gSavedSettings.setBOOL("AntiSpamGroupFeeInvites", mBlockGroupFeeInviteSpam);
|
||||
gSavedSettings.setBOOL("AntiSpamItemOffers", mBlockItemOfferSpam);
|
||||
gSavedSettings.setBOOL("AntiSpamScripts", mBlockScriptSpam);
|
||||
gSavedSettings.setBOOL("AntiSpamTeleports", mBlockTeleportSpam);
|
||||
|
||||
@@ -96,6 +96,7 @@ protected:
|
||||
BOOL mBlockFriendSpam;
|
||||
BOOL mBlockGroupNoticeSpam;
|
||||
BOOL mBlockGroupInviteSpam;
|
||||
BOOL mBlockGroupFeeInviteSpam;
|
||||
BOOL mBlockItemOfferSpam;
|
||||
BOOL mBlockScriptSpam;
|
||||
BOOL mBlockTeleportSpam;
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
#include "llviewerobject.h"
|
||||
#include "llviewerobjectlist.h"
|
||||
#include "llviewerregion.h"
|
||||
#include "lscript_rt_interface.h"
|
||||
//#include "lscript_rt_interface.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewerobject.h"
|
||||
#include "llviewerregion.h"
|
||||
@@ -444,6 +444,16 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
|
||||
data->mItemId, is_running, queue->mMono, queue->getID(),
|
||||
script_data, script_size, data->mScriptName);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string text = LLTrans::getString("CompileQueueProblemUploading");
|
||||
LLChat chat(text);
|
||||
LLFloaterChat::addChat(chat);
|
||||
buffer = text + LLTrans::getString(":") + " " + data->mScriptName;
|
||||
llwarns << "Problem uploading script asset." << llendl;
|
||||
if(queue) queue->removeItemByItemID(data->mItemId);
|
||||
}
|
||||
#if 0 //Client side compiling disabled.
|
||||
else
|
||||
{
|
||||
// It's now in the file, now compile it.
|
||||
@@ -478,6 +488,7 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
|
||||
// Delete it after we're done compiling?
|
||||
LLFile::remove(filename);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -551,6 +562,7 @@ void LLFloaterCompileQueue::onSaveBytecodeComplete(const LLUUID& asset_id, void*
|
||||
}
|
||||
|
||||
// compile the file given and save it out.
|
||||
#if 0 //Client side compiling disabled.
|
||||
void LLFloaterCompileQueue::compile(const std::string& filename,
|
||||
const LLUUID& item_id)
|
||||
{
|
||||
@@ -590,6 +602,7 @@ void LLFloaterCompileQueue::compile(const std::string& filename,
|
||||
(void*)data, FALSE);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void LLFloaterCompileQueue::removeItemByItemID(const LLUUID& asset_id)
|
||||
{
|
||||
|
||||
@@ -163,7 +163,9 @@ protected:
|
||||
S32 status, LLExtStat ext_status);
|
||||
|
||||
// compile the file given and save it out.
|
||||
#if 0 //Client side compiling disabled.
|
||||
void compile(const std::string& filename, const LLUUID& asset_id);
|
||||
#endif
|
||||
|
||||
// remove any object in mScriptScripts with the matching uuid.
|
||||
void removeItemByAssetID(const LLUUID& asset_id);
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#include "llviewerobject.h"
|
||||
#include "llviewerobjectlist.h"
|
||||
#include "llviewerregion.h"
|
||||
#include "lscript_rt_interface.h"
|
||||
//#include "lscript_rt_interface.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewerobject.h"
|
||||
#include "llviewerregion.h"
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <algorithm>
|
||||
|
||||
// library
|
||||
#include "llanimationstates.h"
|
||||
#include "llaudioengine.h"
|
||||
#include "lldatapacker.h"
|
||||
#include "llinventory.h"
|
||||
@@ -551,6 +552,13 @@ void LLGestureMgr::playGesture(LLMultiGesture* gesture)
|
||||
|| anim_step->mFlags & ANIM_FLAG_STOP
|
||||
|| gAssetStorage->hasLocalAsset(anim_id, LLAssetType::AT_ANIMATION)))
|
||||
{
|
||||
//Singu note: Don't attempt to fetch expressions/emotes.
|
||||
const char* emote_name = gAnimLibrary.animStateToString(anim_id);
|
||||
if(emote_name && strstr(emote_name,"express_")==emote_name)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
mLoadingAssets.insert(anim_id);
|
||||
|
||||
LLUUID* id = new LLUUID(gAgentID);
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
#include "llscrollcontainer.h"
|
||||
#include "llscrolllistctrl.h"
|
||||
#include "llslider.h"
|
||||
#include "lscript_rt_interface.h"
|
||||
#include "lscript_export.h"
|
||||
//#include "lscript_rt_interface.h"
|
||||
//#include "lscript_export.h"
|
||||
#include "lltextbox.h"
|
||||
#include "lltooldraganddrop.h"
|
||||
#include "llvfile.h"
|
||||
@@ -92,6 +92,9 @@
|
||||
#include "llviewercontrol.h"
|
||||
#include "llappviewer.h"
|
||||
#include "llpanelobjectinventory.h"
|
||||
|
||||
#include "llsdserialize.h"
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-09-28 (RLVa-1.2.1f)
|
||||
#include "rlvhandler.h"
|
||||
#include "rlvlocks.h"
|
||||
@@ -206,6 +209,34 @@ struct LLSECKeywordCompare
|
||||
}
|
||||
};
|
||||
|
||||
std::vector<LLScriptEdCore::LSLFunctionProps> LLScriptEdCore::mParsedFunctions;
|
||||
//static
|
||||
void LLScriptEdCore::parseFunctions(const std::string& filename)
|
||||
{
|
||||
std::string filepath = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, filename);
|
||||
|
||||
if(LLFile::isfile(filepath))
|
||||
{
|
||||
LLSD function_list;
|
||||
llifstream importer(filepath);
|
||||
if(importer.is_open())
|
||||
{
|
||||
LLSDSerialize::fromXMLDocument(function_list, importer);
|
||||
importer.close();
|
||||
|
||||
for (LLSD::map_const_iterator it = function_list.beginMap(); it != function_list.endMap(); ++it)
|
||||
{
|
||||
LSLFunctionProps fn;
|
||||
fn.mName = it->first;
|
||||
fn.mSleepTime = it->second["sleep_time"].asFloat();
|
||||
fn.mGodOnly = it->second["god_only"].asBoolean();
|
||||
|
||||
mParsedFunctions.push_back(fn);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LLScriptEdCore::LLScriptEdCore(
|
||||
const std::string& name,
|
||||
const LLRect& rect,
|
||||
@@ -258,8 +289,8 @@ LLScriptEdCore::LLScriptEdCore(
|
||||
|
||||
std::vector<std::string> funcs;
|
||||
std::vector<std::string> tooltips;
|
||||
for (std::vector<LLScriptLibraryFunction>::const_iterator i = gScriptLibrary.mFunctions.begin();
|
||||
i != gScriptLibrary.mFunctions.end(); ++i)
|
||||
for (std::vector<LSLFunctionProps>::const_iterator i = mParsedFunctions.begin();
|
||||
i != mParsedFunctions.end(); ++i)
|
||||
{
|
||||
// Make sure this isn't a god only function, or the agent is a god.
|
||||
if (!i->mGodOnly || gAgent.isGodlike())
|
||||
@@ -1472,10 +1503,20 @@ void LLPreviewLSL::saveIfNeeded()
|
||||
{
|
||||
uploadAssetViaCaps(url, filename, mItemUUID);
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSD row;
|
||||
row["columns"][0]["value"] = LLTrans::getString("CompileQueueProblemUploading");
|
||||
row["columns"][0]["font"] = "SANSSERIF_SMALL";
|
||||
mScriptEd->mErrorList->addElement(row);
|
||||
LLFile::remove(filename);
|
||||
}
|
||||
#if 0 //Client side compiling disabled.
|
||||
else if (gAssetStorage)
|
||||
{
|
||||
uploadAssetLegacy(filename, mItemUUID, tid);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1497,6 +1538,7 @@ void LLPreviewLSL::uploadAssetViaCaps(const std::string& url,
|
||||
LLHTTPClient::post(url, body, new LLUpdateAgentInventoryResponder(body, filename, LLAssetType::AT_LSL_TEXT));
|
||||
}
|
||||
|
||||
#if 0 //Client side compiling disabled.
|
||||
void LLPreviewLSL::uploadAssetLegacy(const std::string& filename,
|
||||
const LLUUID& item_id,
|
||||
const LLTransactionID& tid)
|
||||
@@ -1580,7 +1622,7 @@ void LLPreviewLSL::uploadAssetLegacy(const std::string& filename,
|
||||
LLFile::remove(err_filename);
|
||||
LLFile::remove(dst_filename);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// static
|
||||
void LLPreviewLSL::onSaveComplete(const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed)
|
||||
@@ -2375,10 +2417,20 @@ void LLLiveLSLEditor::saveIfNeeded()
|
||||
uploadAssetViaCaps(url, filename, mObjectID,
|
||||
mItemID, is_running);
|
||||
}
|
||||
else
|
||||
{
|
||||
LLSD row;
|
||||
row["columns"][0]["value"] = LLTrans::getString("CompileQueueProblemUploading");
|
||||
row["columns"][0]["font"] = "SANSSERIF_SMALL";
|
||||
mScriptEd->mErrorList->addElement(row);
|
||||
LLFile::remove(filename);
|
||||
}
|
||||
#if 0 //Client side compiling disabled.
|
||||
else if (gAssetStorage)
|
||||
{
|
||||
uploadAssetLegacy(filename, object, tid, is_running);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void LLLiveLSLEditor::uploadAssetViaCaps(const std::string& url,
|
||||
@@ -2397,6 +2449,7 @@ void LLLiveLSLEditor::uploadAssetViaCaps(const std::string& url,
|
||||
new LLUpdateTaskInventoryResponder(body, filename, LLAssetType::AT_LSL_TEXT));
|
||||
}
|
||||
|
||||
#if 0 //Client side compiling disabled.
|
||||
void LLLiveLSLEditor::uploadAssetLegacy(const std::string& filename,
|
||||
LLViewerObject* object,
|
||||
const LLTransactionID& tid,
|
||||
@@ -2495,6 +2548,7 @@ void LLLiveLSLEditor::uploadAssetLegacy(const std::string& filename,
|
||||
runningCheckbox->setLabel(getString("script_running"));
|
||||
runningCheckbox->setEnabled(TRUE);
|
||||
}
|
||||
#endif
|
||||
|
||||
void LLLiveLSLEditor::onSaveTextComplete(const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed)
|
||||
{
|
||||
|
||||
@@ -62,6 +62,7 @@ class LLScriptEdCore : public LLPanel, public LLEventTimer
|
||||
friend class LLLiveLSLEditor;
|
||||
|
||||
public:
|
||||
static void parseFunctions(const std::string& filename);
|
||||
LLScriptEdCore(
|
||||
const std::string& name,
|
||||
const LLRect& rect,
|
||||
@@ -169,6 +170,14 @@ private:
|
||||
LLLiveLSLFile* mLiveFile;
|
||||
LLUUID mObjectUUID;
|
||||
LLUUID mItemUUID;
|
||||
|
||||
struct LSLFunctionProps
|
||||
{
|
||||
std::string mName;
|
||||
F32 mSleepTime;
|
||||
bool mGodOnly;
|
||||
};
|
||||
static std::vector<LSLFunctionProps> mParsedFunctions;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1276,6 +1276,7 @@ void LLSpatialGroup::handleDestruction(const TreeNode* node)
|
||||
LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION);
|
||||
setState(DEAD);
|
||||
|
||||
{OctreeGuard guard(mOctreeNode);
|
||||
for (element_iter i = getDataBegin(); i != getDataEnd(); ++i)
|
||||
{
|
||||
LLDrawable* drawable = *i;
|
||||
@@ -1284,6 +1285,7 @@ void LLSpatialGroup::handleDestruction(const TreeNode* node)
|
||||
drawable->setSpatialGroup(NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//clean up avatar attachment stats
|
||||
LLSpatialBridge* bridge = mSpatialPartition->asBridge();
|
||||
@@ -1363,6 +1365,7 @@ void LLSpatialGroup::destroyGL(bool keep_occlusion)
|
||||
}
|
||||
|
||||
|
||||
OctreeGuard guard(mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter i = getDataBegin(); i != getDataEnd(); ++i)
|
||||
{
|
||||
LLDrawable* drawable = *i;
|
||||
@@ -2065,6 +2068,7 @@ public:
|
||||
{
|
||||
LLSpatialGroup::OctreeNode* branch = group->mOctreeNode;
|
||||
|
||||
OctreeGuard guard(branch);
|
||||
for (LLSpatialGroup::OctreeNode::const_element_iter i = branch->getDataBegin(); i != branch->getDataEnd(); ++i)
|
||||
{
|
||||
LLDrawable* drawable = *i;
|
||||
@@ -2189,6 +2193,7 @@ public:
|
||||
LLSpatialGroup* group = (LLSpatialGroup*) state->getListener(0);
|
||||
group->destroyGL();
|
||||
|
||||
{OctreeGuard guard(group->mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter i = group->getDataBegin(); i != group->getDataEnd(); ++i)
|
||||
{
|
||||
LLDrawable* drawable = *i;
|
||||
@@ -2197,6 +2202,7 @@ public:
|
||||
gPipeline.markRebuild(drawable, LLDrawable::REBUILD_ALL, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (LLSpatialGroup::bridge_list_t::iterator i = group->mBridgeList.begin(); i != group->mBridgeList.end(); ++i)
|
||||
{
|
||||
@@ -2502,6 +2508,7 @@ void renderOctree(LLSpatialGroup* group)
|
||||
gGL.flush();
|
||||
glLineWidth(1.f);
|
||||
gGL.flush();
|
||||
OctreeGuard guard(group->mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter i = group->getDataBegin(); i != group->getDataEnd(); ++i)
|
||||
{
|
||||
LLDrawable* drawable = *i;
|
||||
@@ -3358,6 +3365,7 @@ void renderPhysicsShape(LLDrawable* drawable, LLVOVolume* volume)
|
||||
|
||||
void renderPhysicsShapes(LLSpatialGroup* group)
|
||||
{
|
||||
OctreeGuard guard(group->mOctreeNode);
|
||||
for (LLSpatialGroup::OctreeNode::const_element_iter i = group->getDataBegin(); i != group->getDataEnd(); ++i)
|
||||
{
|
||||
LLDrawable* drawable = *i;
|
||||
@@ -3885,6 +3893,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
{OctreeGuard guard(branch);
|
||||
for (LLSpatialGroup::OctreeNode::const_element_iter i = branch->getDataBegin(); i != branch->getDataEnd(); ++i)
|
||||
{
|
||||
LLDrawable* drawable = *i;
|
||||
@@ -3980,7 +3989,7 @@ public:
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}}
|
||||
|
||||
for (LLSpatialGroup::draw_map_t::iterator i = group->mDrawMap.begin(); i != group->mDrawMap.end(); ++i)
|
||||
{
|
||||
@@ -4070,6 +4079,7 @@ public:
|
||||
return;
|
||||
}
|
||||
|
||||
OctreeGuard guard(branch);
|
||||
for (LLSpatialGroup::OctreeNode::const_element_iter i = branch->getDataBegin(); i != branch->getDataEnd(); ++i)
|
||||
{
|
||||
LLDrawable* drawable = *i;
|
||||
@@ -4293,6 +4303,7 @@ public:
|
||||
|
||||
virtual void visit(const LLSpatialGroup::OctreeNode* branch)
|
||||
{
|
||||
OctreeGuard guard(branch);
|
||||
for (LLSpatialGroup::OctreeNode::const_element_iter i = branch->getDataBegin(); i != branch->getDataEnd(); ++i)
|
||||
{
|
||||
check(*i);
|
||||
@@ -4303,6 +4314,7 @@ public:
|
||||
{
|
||||
node->accept(this);
|
||||
|
||||
OctreeGuard guard(node);
|
||||
for (U32 i = 0; i < node->getChildCount(); i++)
|
||||
{
|
||||
const LLSpatialGroup::OctreeNode* child = node->getChild(i);
|
||||
|
||||
@@ -332,7 +332,7 @@ public:
|
||||
void dirtyMesh() { setState(MESH_DIRTY); }
|
||||
|
||||
//octree wrappers to make code more readable
|
||||
element_list& getData() { return mOctreeNode->getData(); }
|
||||
//element_list& getData() { return mOctreeNode->getData(); }
|
||||
element_iter getDataBegin() { return mOctreeNode->getDataBegin(); }
|
||||
element_iter getDataEnd() { return mOctreeNode->getDataEnd(); }
|
||||
U32 getElementCount() const { return mOctreeNode->getElementCount(); }
|
||||
|
||||
@@ -999,6 +999,8 @@ bool idle_startup()
|
||||
LL_INFOS("AppInit") << "Attempting login as: " << firstname << " " << lastname << LL_ENDL;
|
||||
gDebugInfo["LoginName"] = firstname + " " + lastname;
|
||||
}
|
||||
|
||||
LLScriptEdCore::parseFunctions("lsl_functions_sl.xml"); //Singu Note: This parsing function essentially replaces the entirety of the lscript_library library
|
||||
|
||||
gHippoGridManager->setCurrentGridAsConnected();
|
||||
gHippoLimits->setLimits();
|
||||
@@ -1008,6 +1010,7 @@ bool idle_startup()
|
||||
LLTrans::setDefaultArg("[SECOND_LIFE]", gHippoGridManager->getConnectedGrid()->getGridName());
|
||||
LLTrans::setDefaultArg("[SECOND_LIFE_GRID]", gHippoGridManager->getConnectedGrid()->getGridName() + " Grid");
|
||||
LLTrans::setDefaultArg("[GRID_OWNER]", gHippoGridManager->getConnectedGrid()->getGridOwner());
|
||||
LLScriptEdCore::parseFunctions("lsl_functions_os.xml"); //Singu Note: This appends to the base functions parsed from lsl_functions_sl.xml
|
||||
}
|
||||
|
||||
// create necessary directories
|
||||
|
||||
@@ -1025,6 +1025,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot, boo
|
||||
//when rendering next frame's occlusion queries
|
||||
for (U32 i = 0; i < 16; i++)
|
||||
{
|
||||
gGLPreviousModelView[i] = gGLLastModelView[i];
|
||||
gGLLastModelView[i] = gGLModelView[i];
|
||||
gGLLastProjection[i] = gGLProjection[i];
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#include "llaudioengine.h"
|
||||
#include "llavatarnamecache.h"
|
||||
#include "indra_constants.h"
|
||||
#include "lscript_byteformat.h"
|
||||
#include "../lscript/lscript_byteformat.h" //Need LSCRIPTRunTimePermissionBits and SCRIPT_PERMISSION_*
|
||||
|
||||
#include "llfloaterbump.h"
|
||||
#include "llassetstorage.h"
|
||||
@@ -2558,8 +2558,25 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
||||
break;
|
||||
case IM_GROUP_INVITATION:
|
||||
{
|
||||
// Read the binary bucket for more information.
|
||||
struct invite_bucket_t
|
||||
{
|
||||
S32 membership_fee;
|
||||
LLUUID role_id;
|
||||
}* invite_bucket;
|
||||
|
||||
// Make sure the binary bucket is the correct size.
|
||||
if (binary_bucket_size != sizeof(invite_bucket_t))
|
||||
{
|
||||
LL_WARNS("Messaging") << "Malformed group invite binary bucket" << LL_ENDL;
|
||||
break;
|
||||
}
|
||||
|
||||
invite_bucket = (struct invite_bucket_t*) &binary_bucket[0];
|
||||
S32 membership_fee = ntohl(invite_bucket->membership_fee);
|
||||
|
||||
// NaCl - Antispam
|
||||
if(antispam || gSavedSettings.getBOOL("AntiSpamGroupInvites"))
|
||||
if(antispam || gSavedSettings.getBOOL("AntiSpamGroupInvites") || (membership_fee > 0 && gSavedSettings.getBOOL("AntiSpamGroupFeeInvites")))
|
||||
return;
|
||||
// NaCl End
|
||||
//if (!is_linden && (is_busy || is_muted))
|
||||
@@ -2571,22 +2588,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
||||
else
|
||||
{
|
||||
LL_INFOS("Messaging") << "Received IM_GROUP_INVITATION message." << LL_ENDL;
|
||||
// Read the binary bucket for more information.
|
||||
struct invite_bucket_t
|
||||
{
|
||||
S32 membership_fee;
|
||||
LLUUID role_id;
|
||||
}* invite_bucket;
|
||||
|
||||
// Make sure the binary bucket is the correct size.
|
||||
if (binary_bucket_size != sizeof(invite_bucket_t))
|
||||
{
|
||||
LL_WARNS("Messaging") << "Malformed group invite binary bucket" << LL_ENDL;
|
||||
break;
|
||||
}
|
||||
|
||||
invite_bucket = (struct invite_bucket_t*) &binary_bucket[0];
|
||||
S32 membership_fee = ntohl(invite_bucket->membership_fee);
|
||||
|
||||
LLSD payload;
|
||||
payload["transaction_id"] = session_id;
|
||||
|
||||
@@ -880,11 +880,14 @@ void LLViewerObjectList::update(LLAgent &agent, LLWorld &world)
|
||||
LLMemType mt(LLMemType::MTYPE_OBJECT);
|
||||
|
||||
// Update globals
|
||||
LLViewerObject::setVelocityInterpolate( gSavedSettings.getBOOL("VelocityInterpolate") );
|
||||
LLViewerObject::setPingInterpolate( gSavedSettings.getBOOL("PingInterpolate") );
|
||||
static const LLCachedControl<bool> VelocityInterpolate("VelocityInterpolate");
|
||||
static const LLCachedControl<bool> PingInterpolate("PingInterpolate");
|
||||
LLViewerObject::setVelocityInterpolate( VelocityInterpolate );
|
||||
LLViewerObject::setPingInterpolate( PingInterpolate );
|
||||
|
||||
F32 interp_time = gSavedSettings.getF32("InterpolationTime");
|
||||
F32 phase_out_time = gSavedSettings.getF32("InterpolationPhaseOut");
|
||||
static LLCachedControl<F32> interp_time("InterpolationTime");
|
||||
static LLCachedControl<F32> phase_out_time("InterpolationPhaseOut");
|
||||
|
||||
if (interp_time < 0.0 ||
|
||||
phase_out_time < 0.0 ||
|
||||
phase_out_time > interp_time)
|
||||
@@ -896,7 +899,8 @@ void LLViewerObjectList::update(LLAgent &agent, LLWorld &world)
|
||||
LLViewerObject::setPhaseOutUpdateInterpolationTime( interp_time );
|
||||
LLViewerObject::setMaxUpdateInterpolationTime( phase_out_time );
|
||||
|
||||
gAnimateTextures = gSavedSettings.getBOOL("AnimateTextures");
|
||||
static const LLCachedControl<bool> AnimateTextures("AnimateTextures");
|
||||
gAnimateTextures = AnimateTextures;
|
||||
|
||||
// update global timer
|
||||
F32 last_time = gFrameTimeSeconds;
|
||||
|
||||
@@ -171,6 +171,7 @@ LLGLSLShader gPostColorFilterProgram(LLViewerShaderMgr::SHADER_EFFECT); //Not
|
||||
LLGLSLShader gPostNightVisionProgram(LLViewerShaderMgr::SHADER_EFFECT); //Not in mShaderList
|
||||
LLGLSLShader gPostGaussianBlurProgram(LLViewerShaderMgr::SHADER_EFFECT); //Not in mShaderList
|
||||
LLGLSLShader gPostPosterizeProgram(LLViewerShaderMgr::SHADER_EFFECT); //Not in mShaderList
|
||||
LLGLSLShader gPostMotionBlurProgram(LLViewerShaderMgr::SHADER_EFFECT); //Not in mShaderList
|
||||
|
||||
// Deferred rendering shaders
|
||||
LLGLSLShader gDeferredImpostorProgram(LLViewerShaderMgr::SHADER_DEFERRED);
|
||||
@@ -977,6 +978,26 @@ BOOL LLViewerShaderMgr::loadShadersEffects()
|
||||
gPostPosterizeProgram.uniform1i("tex0", 0);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
vector<string> shaderUniforms;
|
||||
shaderUniforms.reserve(3);
|
||||
shaderUniforms.push_back("inv_proj");
|
||||
shaderUniforms.push_back("prev_proj");
|
||||
shaderUniforms.push_back("screen_res");
|
||||
|
||||
gPostMotionBlurProgram.mName = "Motion Blur Shader (Post)";
|
||||
gPostMotionBlurProgram.mShaderFiles.clear();
|
||||
gPostMotionBlurProgram.mShaderFiles.push_back(make_pair("effects/MotionBlurF.glsl", GL_FRAGMENT_SHADER_ARB));
|
||||
gPostMotionBlurProgram.mShaderFiles.push_back(make_pair("interface/onetexturenocolorV.glsl", GL_VERTEX_SHADER_ARB));
|
||||
gPostMotionBlurProgram.mShaderLevel = mVertexShaderLevel[SHADER_EFFECT];
|
||||
if(gPostMotionBlurProgram.createShader(NULL, &shaderUniforms))
|
||||
{
|
||||
gPostMotionBlurProgram.bind();
|
||||
gPostMotionBlurProgram.uniform1i("tex0", 0);
|
||||
gPostMotionBlurProgram.uniform1i("tex1", 1);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return success;
|
||||
|
||||
@@ -645,6 +645,7 @@ void LLGrassPartition::addGeometryCount(LLSpatialGroup* group, U32& vertex_count
|
||||
mFaceList.clear();
|
||||
|
||||
LLViewerCamera* camera = LLViewerCamera::getInstance();
|
||||
OctreeGuard guard(group->mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter i = group->getDataBegin(); i != group->getDataEnd(); ++i)
|
||||
{
|
||||
LLDrawable* drawablep = *i;
|
||||
|
||||
@@ -557,6 +557,7 @@ void LLParticlePartition::addGeometryCount(LLSpatialGroup* group, U32& vertex_co
|
||||
mFaceList.clear();
|
||||
|
||||
LLViewerCamera* camera = LLViewerCamera::getInstance();
|
||||
OctreeGuard guard(group->mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter i = group->getDataBegin(); i != group->getDataEnd(); ++i)
|
||||
{
|
||||
LLDrawable* drawablep = *i;
|
||||
|
||||
@@ -3494,6 +3494,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
||||
LLFastTimer t(FTM_REBUILD_VOLUME_FACE_LIST);
|
||||
|
||||
//get all the faces into a list
|
||||
OctreeGuard guard(group->mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter drawable_iter = group->getDataBegin(); drawable_iter != group->getDataEnd(); ++drawable_iter)
|
||||
{
|
||||
LLDrawable* drawablep = *drawable_iter;
|
||||
@@ -3900,6 +3901,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
|
||||
if (!LLPipeline::sDelayVBUpdate)
|
||||
{
|
||||
//drawables have been rebuilt, clear rebuild status
|
||||
OctreeGuard guard(group->mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter drawable_iter = group->getDataBegin(); drawable_iter != group->getDataEnd(); ++drawable_iter)
|
||||
{
|
||||
LLDrawable* drawablep = *drawable_iter;
|
||||
@@ -3940,6 +3942,7 @@ void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
|
||||
|
||||
std::set<LLVertexBuffer*> mapped_buffers;
|
||||
|
||||
OctreeGuard guard(group->mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter drawable_iter = group->getDataBegin(); drawable_iter != group->getDataEnd(); ++drawable_iter)
|
||||
{
|
||||
LLDrawable* drawablep = *drawable_iter;
|
||||
@@ -4012,6 +4015,7 @@ void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
|
||||
llwarns << "Not all mapped vertex buffers are unmapped!" << llendl ;
|
||||
warningsCount = 1;
|
||||
}
|
||||
OctreeGuard guard(group->mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter drawable_iter = group->getDataBegin(); drawable_iter != group->getDataEnd(); ++drawable_iter)
|
||||
{
|
||||
LLDrawable* drawablep = *drawable_iter;
|
||||
@@ -4484,6 +4488,7 @@ void LLGeometryManager::addGeometryCount(LLSpatialGroup* group, U32 &vertex_coun
|
||||
|
||||
//for each drawable
|
||||
|
||||
OctreeGuard guard(group->mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter drawable_iter = group->getDataBegin(); drawable_iter != group->getDataEnd(); ++drawable_iter)
|
||||
{
|
||||
LLDrawable* drawablep = *drawable_iter;
|
||||
|
||||
@@ -2820,6 +2820,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
|
||||
else
|
||||
{
|
||||
group->setVisible();
|
||||
OctreeGuard guard(group->mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter i = group->getDataBegin(); i != group->getDataEnd(); ++i)
|
||||
{
|
||||
markVisible(*i, camera);
|
||||
@@ -2908,6 +2909,7 @@ void LLPipeline::stateSort(LLSpatialGroup* group, LLCamera& camera)
|
||||
LLMemType mt(LLMemType::MTYPE_PIPELINE_STATE_SORT);
|
||||
if (!sSkipUpdate && group->changeLOD())
|
||||
{
|
||||
OctreeGuard guard(group->mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter i = group->getDataBegin(); i != group->getDataEnd(); ++i)
|
||||
{
|
||||
LLDrawable* drawablep = *i;
|
||||
@@ -3044,6 +3046,7 @@ void forAllDrawables(LLCullResult::sg_iterator begin,
|
||||
{
|
||||
for (LLCullResult::sg_iterator i = begin; i != end; ++i)
|
||||
{
|
||||
OctreeGuard guard((*i)->mOctreeNode);
|
||||
for (LLSpatialGroup::element_iter j = (*i)->getDataBegin(); j != (*i)->getDataEnd(); ++j)
|
||||
{
|
||||
func(*j);
|
||||
@@ -6706,7 +6709,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b
|
||||
{ //combine result based on alpha
|
||||
if (multisample)
|
||||
{
|
||||
mDeferredLight.bindTarget();
|
||||
mDeferredScreen.bindTarget();
|
||||
glViewport(0, 0, mDeferredScreen.getWidth(), mDeferredScreen.getHeight());
|
||||
}
|
||||
else
|
||||
@@ -6749,7 +6752,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b
|
||||
|
||||
if (multisample)
|
||||
{
|
||||
mDeferredLight.flush();
|
||||
mDeferredScreen.flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6757,7 +6760,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b
|
||||
{
|
||||
if (multisample)
|
||||
{
|
||||
mDeferredLight.bindTarget();
|
||||
mDeferredScreen.bindTarget();
|
||||
}
|
||||
LLGLSLShader* shader = &gDeferredPostNoDoFProgram;
|
||||
|
||||
@@ -6785,7 +6788,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b
|
||||
|
||||
if (multisample)
|
||||
{
|
||||
mDeferredLight.flush();
|
||||
mDeferredScreen.flush();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6806,7 +6809,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b
|
||||
S32 channel = shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mDeferredLight.getUsage());
|
||||
if (channel > -1)
|
||||
{
|
||||
mDeferredLight.bindTexture(0, channel);
|
||||
mDeferredScreen.bindTexture(0, channel);
|
||||
}
|
||||
|
||||
gGL.begin(LLRender::TRIANGLE_STRIP);
|
||||
|
||||
@@ -1,230 +1,249 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater bottom="-350" can_close="true" can_drag_on_left="false" can_minimize="true"
|
||||
can_resize="false" height="400" left="50" min_height="400"
|
||||
min_width="300" mouse_opaque="true" name="Post-Process Floater"
|
||||
title="Post-Process Settings" width="400">
|
||||
<tab_container bottom="-400" follows="left|top" height="400" left="0"
|
||||
mouse_opaque="false" name="Post-Process Tabs" tab_position="bottom"
|
||||
width="400">
|
||||
<panel border="true" bottom="-400" follows="left|top|right|bottom" height="400"
|
||||
label="Color Filter" left="1" mouse_opaque="false"
|
||||
name="ColorFilterPanel" width="398">
|
||||
<check_box bottom="-40" follows="left|top"
|
||||
font="SansSerifSmall" height="16" initial_value="false" label="Enable"
|
||||
left="4" mouse_opaque="true" name="enable_color_filter" width="200" />
|
||||
can_resize="false" height="400" left="50" min_height="400"
|
||||
min_width="300" mouse_opaque="true" name="Post-Process Floater"
|
||||
title="Post-Process Settings" width="400">
|
||||
<tab_container bottom="-400" follows="left|top" height="384" left="0"
|
||||
mouse_opaque="false" name="Post-Process Tabs" tab_position="left"
|
||||
width="400">
|
||||
<panel border="true" bottom="-400" follows="left|top|right|bottom" height="384"
|
||||
label="Color Filter" left="1" mouse_opaque="false"
|
||||
name="ColorFilterPanel" width="398">
|
||||
<check_box bottom="-20" follows="left|top"
|
||||
font="SansSerifSmall" height="16" initial_value="false" label="Enable"
|
||||
left="14" mouse_opaque="true" name="enable_color_filter" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="ColorFilterGammaText" v_pad="0"
|
||||
width="355">
|
||||
Gamma
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true" decimal_digits="2" follows="left"
|
||||
height="18" increment="0.01" initial_val="1.0" label="" left="14"
|
||||
max_val="10" min_val="-.25" mouse_opaque="true" name="gamma"
|
||||
show_text="true" value="1.0" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="ColorFilterGammaText" v_pad="0"
|
||||
width="355">
|
||||
Gamma
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true" decimal_digits="2" follows="left"
|
||||
height="18" increment="0.01" initial_val="1.0" label="" left="14" val_width="35"
|
||||
max_val="10" min_val="-.25" mouse_opaque="true" name="gamma"
|
||||
show_text="true" value="1.0" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="ColorFilterBrightnessText" v_pad="0"
|
||||
width="355">
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="ColorFilterBrightnessText" v_pad="0"
|
||||
width="355">
|
||||
Brightness
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true" decimal_digits="2" follows="left"
|
||||
height="18" increment="0.01" initial_val="1.0" label="" left="14" val_width="35"
|
||||
max_val="4" min_val="0" mouse_opaque="true" name="brightness"
|
||||
show_text="true" value="1.0" width="200" />
|
||||
height="18" increment="0.01" initial_val="1.0" label="" left="14"
|
||||
max_val="4" min_val="0" mouse_opaque="true" name="brightness"
|
||||
show_text="true" value="1.0" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="ColorFilterSaturationText" v_pad="0"
|
||||
width="355">
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="ColorFilterSaturationText" v_pad="0"
|
||||
width="355">
|
||||
Saturation
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true" decimal_digits="2" follows="left"
|
||||
height="18" increment="0.01" initial_val="1.0" label="" left="14" val_width="35"
|
||||
max_val="2" min_val="-2" mouse_opaque="true"
|
||||
name="saturation" show_text="true" value="1.0" width="200" />
|
||||
height="18" increment="0.01" initial_val="1.0" label="" left="14"
|
||||
max_val="2" min_val="-1" mouse_opaque="true"
|
||||
name="saturation" show_text="true" value="1.0" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="ColorFilterContrastText" v_pad="0"
|
||||
width="355">
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="ColorFilterContrastText" v_pad="0"
|
||||
width="355">
|
||||
Contrast
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true"
|
||||
decimal_digits="2" follows="left" height="18" increment="0.01" val_width="35"
|
||||
initial_val="1.0" label="" left="14" max_val="4" min_val="0"
|
||||
mouse_opaque="true" name="contrast" show_text="true"
|
||||
value="1.0" width="200" />
|
||||
decimal_digits="2" follows="left" height="18" increment="0.01"
|
||||
initial_val="1.0" label="" left="14" max_val="4" min_val="0"
|
||||
mouse_opaque="true" name="contrast" show_text="true"
|
||||
value="1.0" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="ColorFilterBaseText" v_pad="0"
|
||||
width="355">
|
||||
Contrast Base Colors
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="ColorFilterBaseText" v_pad="0"
|
||||
width="355">
|
||||
Contrast Base Colora
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true"
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="1.0" label="R" label_width="7" left="14" max_val="1" min_val="0"
|
||||
mouse_opaque="true" name="contrast_base[0]" show_text="true" value="1.0"
|
||||
width="200" />
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="1.0" label="R" left="14" max_val="1" min_val="0"
|
||||
mouse_opaque="true" name="contrast_base[0]" show_text="true" value="1.0"
|
||||
width="200" />
|
||||
<slider bottom_delta="-20" can_edit_text="true"
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="1.0" label="G" label_width="7" left="14" max_val="1" min_val="0"
|
||||
mouse_opaque="true" name="contrast_base[1]" show_text="true" value="1.0"
|
||||
width="200" />
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="1.0" label="G" left="14" max_val="1" min_val="0"
|
||||
mouse_opaque="true" name="contrast_base[1]" show_text="true" value="1.0"
|
||||
width="200" />
|
||||
<slider bottom_delta="-20" can_edit_text="true"
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="1.0" label="B" label_width="7" left="14" max_val="1" min_val="0"
|
||||
mouse_opaque="true" name="contrast_base[2]" show_text="true" value="1.0"
|
||||
width="200" />
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="1.0" label="B" left="14" max_val="1" min_val="0"
|
||||
mouse_opaque="true" name="contrast_base[2]" show_text="true" value="1.0"
|
||||
width="200" />
|
||||
<slider bottom_delta="-20" can_edit_text="true"
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="0.5" label="I" label_width="7" left="14" max_val="1" min_val="0"
|
||||
mouse_opaque="true" name="contrast_base[3]" show_text="true" value="1.0"
|
||||
width="200" />
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="0.5" label="I" left="14" max_val="1" min_val="0"
|
||||
mouse_opaque="true" name="contrast_base[3]" show_text="true" value="1.0"
|
||||
width="200" />
|
||||
</panel>
|
||||
<panel border="true" bottom="-180" follows="left|top|right|bottom" height="400"
|
||||
label="Gauss Blur" left="1" mouse_opaque="false"
|
||||
name="GaussBlurPanel" width="398">
|
||||
<check_box bottom="-40" follows="left|top"
|
||||
font="SansSerifSmall" height="16" initial_value="false" label="Enable"
|
||||
left="4" mouse_opaque="true" name="enable_gauss_blur" width="200" />
|
||||
<panel border="true" bottom="-180" follows="left|top|right|bottom" height="384"
|
||||
label="Gauss Blur" left="1" mouse_opaque="false"
|
||||
name="GaussBlurPanel" width="398">
|
||||
<check_box bottom="-20" follows="left|top"
|
||||
font="SansSerifSmall" height="16" initial_value="false" label="Enable"
|
||||
left="14" mouse_opaque="true" name="enable_gauss_blur" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-21" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="GaussBlurPassesText" v_pad="0"
|
||||
width="355">
|
||||
bottom_delta="-21" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="GaussBlurPassesText" v_pad="0"
|
||||
width="355">
|
||||
Passes to apply
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true"
|
||||
decimal_digits="0" follows="left"
|
||||
height="18" increment="1" initial_val="9" label="" left="14"
|
||||
max_val="25" min_val="1" mouse_opaque="true"
|
||||
name="gauss_blur_passes" show_text="true" value="0.7" width="200" />
|
||||
decimal_digits="0" follows="left"
|
||||
height="18" increment="1" initial_val="9" label="" left="14"
|
||||
max_val="25" min_val="1" mouse_opaque="true"
|
||||
name="gauss_blur_passes" show_text="true" value="0.7" width="200" />
|
||||
</panel>
|
||||
<panel border="true" bottom="-180" follows="left|top|right|bottom" height="400"
|
||||
label="Night Vision" left="1" mouse_opaque="false"
|
||||
name="NightVisionPanel" width="398">
|
||||
<check_box bottom="-40" follows="left|top"
|
||||
font="SansSerifSmall" height="16" initial_value="false" label="Enable"
|
||||
left="4" mouse_opaque="true" name="enable_night_vision" width="200" />
|
||||
<panel border="true" bottom="-180" follows="left|top|right|bottom" height="384"
|
||||
label="Night Vision" left="1" mouse_opaque="false"
|
||||
name="NightVisionPanel" width="398">
|
||||
<check_box bottom="-20" follows="left|top"
|
||||
font="SansSerifSmall" height="16" initial_value="false" label="Enable"
|
||||
left="14" mouse_opaque="true" name="enable_night_vision" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-21" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="NightVisionBrightMultText" v_pad="0"
|
||||
width="355">
|
||||
bottom_delta="-21" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="NightVisionBrightMultText" v_pad="0"
|
||||
width="355">
|
||||
Light Amplification Multiple
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true" val_width="50"
|
||||
decimal_digits="3" follows="left"
|
||||
height="18" increment="0.01" initial_val="3.0" label="" left="14"
|
||||
max_val="10" min_val="1" mouse_opaque="true"
|
||||
name="brightness_multiplier" show_text="true" value="0.7" width="220" />
|
||||
<slider bottom_delta="-30" can_edit_text="true"
|
||||
decimal_digits="3" follows="left"
|
||||
height="18" increment="0.01" initial_val="3.0" label="" left="14"
|
||||
max_val="10" min_val="1" mouse_opaque="true"
|
||||
name="brightness_multiplier" show_text="true" value="0.7" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="NightVisionNoiseSizeText" v_pad="0"
|
||||
width="355">
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="NightVisionNoiseSizeText" v_pad="0"
|
||||
width="355">
|
||||
Noise Size
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true" val_width="50"
|
||||
decimal_digits="3" follows="left" height="18" increment="0.1"
|
||||
initial_val="1" label="" left="14" max_val="100" min_val="1"
|
||||
mouse_opaque="true" name="noise_size" show_text="true"
|
||||
value="1.0" width="220" />
|
||||
<slider bottom_delta="-30" can_edit_text="true"
|
||||
decimal_digits="3" follows="left" height="18" increment="0.1"
|
||||
initial_val="1" label="" left="14" max_val="100" min_val="1"
|
||||
mouse_opaque="true" name="noise_size" show_text="true"
|
||||
value="1.0" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="NightVisionNoiseStrengthText"
|
||||
v_pad="0" width="355">
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="NightVisionNoiseStrengthText"
|
||||
v_pad="0" width="355">
|
||||
Noise Strength
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true" decimal_digits="3" val_width="50"
|
||||
follows="left" height="18" increment="0.01" initial_val="0.3" label=""
|
||||
left="14" max_val="1" min_val="0" mouse_opaque="true"
|
||||
name="noise_strength" show_text="true" value="1.0" width="220" />
|
||||
</panel>
|
||||
<panel border="true" bottom="-180" follows="left|top|right|bottom" height="400"
|
||||
label="Posterize" left="1" mouse_opaque="false"
|
||||
name="PosterizePanel" width="398">
|
||||
<check_box bottom="-40" follows="left|top"
|
||||
font="SansSerifSmall" height="16" initial_value="false" label="Enable"
|
||||
left="4" mouse_opaque="true" name="enable_posterize" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-21" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="PosterLayersText" v_pad="0"
|
||||
width="355">
|
||||
Layer Count
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true"
|
||||
decimal_digits="3" follows="left"
|
||||
height="18" increment="1" initial_val="10" label="" left="14"
|
||||
max_val="20" min_val="1" mouse_opaque="true"
|
||||
name="posterize_layers" show_text="true" value="10" width="200" />
|
||||
<slider bottom_delta="-30" can_edit_text="true" decimal_digits="3"
|
||||
follows="left" height="18" increment="0.01" initial_val="0.3" label=""
|
||||
left="14" max_val="1" min_val="0" mouse_opaque="true"
|
||||
name="noise_strength" show_text="true" value="1.0" width="200" />
|
||||
</panel>
|
||||
<panel border="true" bottom="-180" follows="left|top|right|bottom" height="384"
|
||||
label="Posterize" left="1" mouse_opaque="false"
|
||||
name="PosterizePanel" width="398">
|
||||
<check_box bottom="-20" follows="left|top"
|
||||
font="SansSerifSmall" height="16" initial_value="false" label="Enable"
|
||||
left="14" mouse_opaque="true" name="enable_posterize" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-21" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="PosterLayersText" v_pad="0"
|
||||
width="355">
|
||||
Layer Count
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true"
|
||||
decimal_digits="3" follows="left"
|
||||
height="18" increment="1" initial_val="10" label="" left="14"
|
||||
max_val="20" min_val="1" mouse_opaque="true"
|
||||
name="posterize_layers" show_text="true" value="10" width="200" />
|
||||
</panel>
|
||||
<panel border="true" bottom="-180" follows="left|top|right|bottom" height="384"
|
||||
label="MotionBlur" left="1" mouse_opaque="false"
|
||||
name="MotionBlurPanel" width="398">
|
||||
<check_box bottom="-20" follows="left|top"
|
||||
font="SansSerifSmall" height="16" initial_value="false" label="Enable"
|
||||
left="14" mouse_opaque="true" name="enable_motionblur" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-21" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="MotionBlurText" v_pad="0"
|
||||
width="355">
|
||||
Motionblur Strength
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true"
|
||||
decimal_digits="0" follows="left"
|
||||
height="18" increment="1" initial_val="8" label="" left="14"
|
||||
max_val="30" min_val="1" mouse_opaque="true"
|
||||
name="blur_strength" show_text="true" value="0.7" width="200" />
|
||||
</panel>
|
||||
<!--<panel border="true" bottom="-180" follows="left|top|right|bottom" height="400"
|
||||
label="Bloom" left="1" mouse_opaque="true"
|
||||
name="BloomPanel" width="398">
|
||||
<check_box bottom="-40" control_name="BloomToggle" follows="left|top"
|
||||
font="SansSerifSmall" height="16" initial_value="false" label="Enable"
|
||||
left="4" mouse_opaque="true" name="BloomToggle" width="200" />
|
||||
label="Bloom" left="1" mouse_opaque="true"
|
||||
name="BloomPanel" width="398">
|
||||
<check_box bottom="-20" control_name="BloomToggle" follows="left|top"
|
||||
font="SansSerifSmall" height="16" initial_value="false" label="Enable"
|
||||
left="14" mouse_opaque="true" name="BloomToggle" width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-21" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="BloomExtractText" v_pad="0"
|
||||
width="355">
|
||||
bottom_delta="-21" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="BloomExtractText" v_pad="0"
|
||||
width="355">
|
||||
Luminosity Extraction
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true" control_name="BloomExtract"
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="0.9" label="" left="14" max_val="1" min_val="0" val_width="41"
|
||||
mouse_opaque="true" name="BloomExtract" show_text="true" value="0.7"
|
||||
width="200" />
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="0.9" label="" left="14" max_val="1" min_val="0"
|
||||
mouse_opaque="true" name="BloomExtract" show_text="true" value="0.7"
|
||||
width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="BloomSizeText" v_pad="0" width="355">
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="BloomSizeText" v_pad="0" width="355">
|
||||
Bloom Size
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true" control_name="BloomSize"
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="3.0" label="" left="14" max_val="20" min_val="0" val_width="41"
|
||||
mouse_opaque="true" name="BloomSize" show_text="true" value="1.0"
|
||||
width="200" />
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="3.0" label="" left="14" max_val="20" min_val="0"
|
||||
mouse_opaque="true" name="BloomSize" show_text="true" value="1.0"
|
||||
width="200" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="BloomStrengthText" v_pad="0"
|
||||
width="355">
|
||||
bottom_delta="-20" drop_shadow_visible="true" follows="left|top|right"
|
||||
font="SansSerif" h_pad="0" halign="left" height="16"
|
||||
left="10" mouse_opaque="true" name="BloomStrengthText" v_pad="0"
|
||||
width="355">
|
||||
Bloom Strength
|
||||
</text>
|
||||
<slider bottom_delta="-30" can_edit_text="true" control_name="BloomStrength"
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="1.2" label="" left="14" max_val="10" min_val="0" val_width="41"
|
||||
mouse_opaque="true" name="BloomStrength" show_text="true" value="1.0"
|
||||
width="200" />
|
||||
</panel>-->
|
||||
decimal_digits="3" follows="left" height="18" increment="0.01"
|
||||
initial_val="1.2" label="" left="14" max_val="10" min_val="0"
|
||||
mouse_opaque="true" name="BloomStrength" show_text="true" value="1.0"
|
||||
width="200" />
|
||||
</panel>-->
|
||||
<panel border="true" bottom="-180" follows="left|top|right|bottom" height="400"
|
||||
label="Extras" left="1" mouse_opaque="false" name="Extras"
|
||||
width="398">
|
||||
<combo_box allow_text_entry="false" bottom="-43" follows="left|top" height="18"
|
||||
left="15" max_chars="20" mouse_opaque="true" name="PPEffectsCombo"
|
||||
width="150" />
|
||||
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-86"
|
||||
enabled="true" follows="left|right|bottom" font="SansSerif"
|
||||
handle_edit_keys_directly="false" height="20"
|
||||
label="Effect Name" left="15" max_length="40" mouse_opaque="true"
|
||||
name="PPEffectNameEditor" select_all_on_focus_received="false"
|
||||
select_on_focus="false" tab_group="1" width="150" />
|
||||
<button bottom="-44" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
label="Load Effect" label_selected="Load Effect" left_delta="170"
|
||||
mouse_opaque="true" name="PPLoadEffect" scale_image="true" width="100" />
|
||||
<button bottom="-70" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
label="Save Effect" label_selected="Save Effect"
|
||||
mouse_opaque="true" name="PPSaveEffect" scale_image="true" width="100" />
|
||||
label="Extras" left="1" mouse_opaque="false" name="Extras"
|
||||
width="398">
|
||||
<button bottom="-33" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
label="LoadEffect" label_selected="LoadEffect" left="15"
|
||||
mouse_opaque="true" name="PPLoadEffect" scale_image="true" width="100" />
|
||||
<button bottom="-60" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
label="SaveEffect" label_selected="SaveEffect" left="15"
|
||||
mouse_opaque="true" name="PPSaveEffect" scale_image="true" width="100" />
|
||||
<combo_box allow_text_entry="false" bottom="-33" follows="left|top" height="18"
|
||||
left_delta="120" max_chars="20" mouse_opaque="true" name="PPEffectsCombo"
|
||||
width="150" />
|
||||
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-75"
|
||||
enabled="true" follows="left|right|bottom" font="SansSerif"
|
||||
handle_edit_keys_directly="false" height="20"
|
||||
label="Effect Name" left="135" max_length="40" mouse_opaque="true"
|
||||
name="PPEffectNameEditor" select_all_on_focus_received="false"
|
||||
select_on_focus="false" tab_group="1" width="150" />
|
||||
</panel>
|
||||
</tab_container>
|
||||
</floater>
|
||||
|
||||
@@ -81,11 +81,12 @@
|
||||
<text name="Block All Dialogs From" left="10" bottom_delta="-10">Block All Dialogs From</text>
|
||||
<check_box control_name="AntiSpamAlerts" height="16" label="Alerts" name="Alerts" left="14" bottom_delta="-23"/>
|
||||
<check_box control_name="AntiSpamFriendshipOffers" height="16" label="Friendship Offers" name="Friendship Offers" bottom_delta="0" left_delta="120"/>
|
||||
<check_box control_name="AntiSpamGroupInvites" height="16" label="Group Invites" name="Group Invites" bottom_delta="0" left_delta="120"/>
|
||||
<check_box control_name="AntiSpamGroupNotices" height="16" label="Group Notices" name="Group Notices" bottom_delta="0" left_delta="120"/>
|
||||
<check_box control_name="AntiSpamGroupInvites" height="16" label="All Group Invites" name="Group Invites" bottom_delta="0" left_delta="120"/>
|
||||
<check_box control_name="AntiSpamGroupFeeInvites" height="16" label="Group Fee Invites" name="Group Fee Invites" bottom_delta="0" left_delta="120"/>
|
||||
<check_box control_name="AntiSpamItemOffers" height="16" label="Item Offers" name="Item Offers" left="14"/>
|
||||
<check_box control_name="AntiSpamScripts" height="16" label="Scripts" name="Scripts" bottom_delta="0" left_delta="120"/>
|
||||
<check_box control_name="AntiSpamTeleports" height="16" label="Teleport Offers" name="Teleport Offers" bottom_delta="0" left_delta="120"/>
|
||||
<check_box control_name="AntiSpamGroupNotices" height="16" label="Group Notices" name="Group Notices" bottom_delta="0" left_delta="120"/>
|
||||
</panel>
|
||||
|
||||
<panel border="true" bottom="-580" height="525" label="Text Options" left="1" name="TextOptions" width="418">
|
||||
|
||||
@@ -2921,6 +2921,7 @@ Where tag = tag string to match. Removes bot's matching the tag.
|
||||
<string name="CompileQueueDownloadedCompiling">Downloaded, now compiling</string>
|
||||
<string name="CompileQueueScriptNotFound">Script not found on server.</string>
|
||||
<string name="CompileQueueProblemDownloading">Problem downloading</string>
|
||||
<string name="CompileQueueProblemUploading">Sim lacking UpdateScriptTask capabilities. Unable to request recompile</string>
|
||||
<string name="CompileQueueInsufficientPermDownload">Insufficient permissions to download a script.</string>
|
||||
<string name="CompileQueueInsufficientPermFor">Insufficient permissions for</string>
|
||||
<string name="CompileQueueUnknownFailure">Unknown failure to download</string>
|
||||
|
||||
Reference in New Issue
Block a user