Merge branch 'master' of git://github.com/Shyotl/SingularityViewer

This commit is contained in:
Lirusaito
2012-10-12 13:50:56 -04:00
20 changed files with 1533 additions and 38 deletions

View File

@@ -69,7 +69,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)

View File

@@ -61,7 +61,7 @@ set(cmake_SOURCE_FILES
LLVFS.cmake
LLWindow.cmake
LLXML.cmake
LScript.cmake
# LScript.cmake
Linking.cmake
NDOF.cmake
OPENAL.cmake

View File

@@ -296,6 +296,8 @@ public:
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)
{

View File

@@ -35,7 +35,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
@@ -1549,7 +1549,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}
${LLVFS_LIBRARIES}
${LLWINDOW_LIBRARIES}
${LLXML_LIBRARIES}
${LSCRIPT_LIBRARIES}
# ${LSCRIPT_LIBRARIES}
${LLMATH_LIBRARIES}
${LLCOMMON_LIBRARIES}
${NDOF_LIBRARY}

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

File diff suppressed because it is too large Load Diff

View File

@@ -985,6 +985,17 @@ Found in Advanced->Rendering->Info Displays</string>
<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>

View File

@@ -376,6 +376,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");
@@ -592,6 +593,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);

View File

@@ -96,6 +96,7 @@ protected:
BOOL mBlockFriendSpam;
BOOL mBlockGroupNoticeSpam;
BOOL mBlockGroupInviteSpam;
BOOL mBlockGroupFeeInviteSpam;
BOOL mBlockItemOfferSpam;
BOOL mBlockScriptSpam;
BOOL mBlockTeleportSpam;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -998,6 +998,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();
@@ -1007,6 +1009,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

View File

@@ -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"
@@ -2557,8 +2557,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))
@@ -2570,22 +2587,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;

View File

@@ -6745,7 +6745,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
@@ -6788,7 +6788,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b
if (multisample)
{
mDeferredLight.flush();
mDeferredScreen.flush();
}
}
}
@@ -6796,7 +6796,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b
{
if (multisample)
{
mDeferredLight.bindTarget();
mDeferredScreen.bindTarget();
}
LLGLSLShader* shader = &gDeferredPostNoDoFProgram;
@@ -6824,7 +6824,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b
if (multisample)
{
mDeferredLight.flush();
mDeferredScreen.flush();
}
}
@@ -6845,7 +6845,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);

View File

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

View File

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