Merge branch 'V2MultiWear' of git://github.com/Lirusaito/SingularityViewer into V2MultiWear
This commit is contained in:
@@ -5,27 +5,25 @@ project(llaudio)
|
||||
include(00-Common)
|
||||
include(Audio)
|
||||
include(LLAudio)
|
||||
if(FMODEX)
|
||||
include(FMODEX)
|
||||
if(FMODEX)
|
||||
set(FMOD OFF)
|
||||
endif(FMODEX)
|
||||
endif(FMODEX)
|
||||
if(NOT FMODEX)
|
||||
include(FMOD)
|
||||
endif(NOT FMODEX)
|
||||
if (FMODEX)
|
||||
include(FMODEX)
|
||||
set(FMOD OFF)
|
||||
endif (FMODEX)
|
||||
if (NOT FMODEX)
|
||||
include(FMOD)
|
||||
endif (NOT FMODEX)
|
||||
include(OPENAL)
|
||||
include(LLCommon)
|
||||
include(LLMath)
|
||||
include(LLMessage)
|
||||
include(LLVFS)
|
||||
|
||||
if(FMODEX)
|
||||
include_directories(${FMODEX_INCLUDE_DIR})
|
||||
if (FMODEX)
|
||||
include_directories(${FMODEX_INCLUDE_DIR})
|
||||
endif(FMODEX)
|
||||
if(FMOD)
|
||||
include_directories(${FMOD_INCLUDE_DIR})
|
||||
endif(FMOD)
|
||||
include_directories(${FMOD_INCLUDE_DIR})
|
||||
endif (FMOD)
|
||||
|
||||
include_directories(
|
||||
${LLAUDIO_INCLUDE_DIRS}
|
||||
|
||||
@@ -242,8 +242,8 @@ BOOL LLVorbisDecodeState::initDecode()
|
||||
llwarns << "No default bitstream found" << llendl;
|
||||
}
|
||||
// <edit>
|
||||
// This magic value is equivilent to 150MiB of data.
|
||||
// Prevents griffers from utilizin a huge xbox sound the size of god to instafry the viewer
|
||||
// This magic value is equivalent to 150MiB of data.
|
||||
// Prevents griefers from utilizing a huge xbox sound the size of god to instafry the viewer
|
||||
if(size_guess >= 157286400)
|
||||
{
|
||||
llwarns << "Bad sound caught by zmagic" << llendl;
|
||||
@@ -616,7 +616,8 @@ void LLAudioDecodeMgr::Impl::processQueue(const F32 num_secs)
|
||||
llwarns << mCurrentDecodep->getUUID() << " has invalid vorbis data, aborting decode" << llendl;
|
||||
mCurrentDecodep->flushBadFile();
|
||||
LLAudioData *adp = gAudiop->getAudioData(mCurrentDecodep->getUUID());
|
||||
adp->setHasValidData(FALSE);
|
||||
adp->setHasValidData(false);
|
||||
adp->setHasCompletedDecode(true);
|
||||
mCurrentDecodep = NULL;
|
||||
done = TRUE;
|
||||
}
|
||||
@@ -631,11 +632,16 @@ void LLAudioDecodeMgr::Impl::processQueue(const F32 num_secs)
|
||||
if (mCurrentDecodep->finishDecode())
|
||||
{
|
||||
// We finished!
|
||||
if (mCurrentDecodep->isValid() && mCurrentDecodep->isDone())
|
||||
LLAudioData *adp = gAudiop->getAudioData(mCurrentDecodep->getUUID());
|
||||
if (!adp)
|
||||
{
|
||||
LLAudioData *adp = gAudiop->getAudioData(mCurrentDecodep->getUUID());
|
||||
adp->setHasDecodedData(TRUE);
|
||||
adp->setHasValidData(TRUE);
|
||||
llwarns << "Missing LLAudioData for decode of " << mCurrentDecodep->getUUID() << llendl;
|
||||
}
|
||||
else if (mCurrentDecodep->isValid() && mCurrentDecodep->isDone())
|
||||
{
|
||||
adp->setHasCompletedDecode(true);
|
||||
adp->setHasDecodedData(true);
|
||||
adp->setHasValidData(true);
|
||||
|
||||
// At this point, we could see if anyone needs this sound immediately, but
|
||||
// I'm not sure that there's a reason to - we need to poll all of the playing
|
||||
@@ -644,7 +650,8 @@ void LLAudioDecodeMgr::Impl::processQueue(const F32 num_secs)
|
||||
}
|
||||
else
|
||||
{
|
||||
llinfos << "Vorbis decode failed!!!" << llendl;
|
||||
adp->setHasCompletedDecode(true);
|
||||
llinfos << "Vorbis decode failed for " << mCurrentDecodep->getUUID() << llendl;
|
||||
}
|
||||
mCurrentDecodep = NULL;
|
||||
}
|
||||
@@ -712,15 +719,18 @@ BOOL LLAudioDecodeMgr::addDecodeRequest(const LLUUID &uuid)
|
||||
if (gAudiop->hasDecodedFile(uuid))
|
||||
{
|
||||
// Already have a decoded version, don't need to decode it.
|
||||
//llinfos << "addDecodeRequest for " << uuid << " has decoded file already" << llendl;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (gAssetStorage->hasLocalAsset(uuid, LLAssetType::AT_SOUND))
|
||||
{
|
||||
// Just put it on the decode queue.
|
||||
//llinfos << "addDecodeRequest for " << uuid << " has local asset file already" << llendl;
|
||||
mImpl->mDecodeQueue.push(uuid);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//llinfos << "addDecodeRequest for " << uuid << " no file available" << llendl;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1275,10 +1275,11 @@ void LLAudioEngine::assetCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::E
|
||||
// Need to mark data as bad to avoid constant rerequests.
|
||||
LLAudioData *adp = gAudiop->getAudioData(uuid);
|
||||
if (adp)
|
||||
{
|
||||
{ // Make sure everything is cleared
|
||||
adp->setHasValidData(false);
|
||||
adp->setHasLocalData(false);
|
||||
adp->setHasDecodedData(false);
|
||||
adp->setHasCompletedDecode(true);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1291,9 +1292,10 @@ void LLAudioEngine::assetCallback(LLVFS *vfs, const LLUUID &uuid, LLAssetType::E
|
||||
}
|
||||
else
|
||||
{
|
||||
// llinfos << "Got asset callback with good audio data for " << uuid << ", making decode request" << llendl;
|
||||
adp->setHasValidData(true);
|
||||
adp->setHasLocalData(true);
|
||||
gAudioDecodeMgrp->addDecodeRequest(uuid);
|
||||
adp->setHasLocalData(true);
|
||||
gAudioDecodeMgrp->addDecodeRequest(uuid);
|
||||
}
|
||||
}
|
||||
gAudiop->mCurrentTransfer = LLUUID::null;
|
||||
@@ -1380,16 +1382,18 @@ void LLAudioSource::update()
|
||||
|
||||
if (!getCurrentBuffer())
|
||||
{
|
||||
if (getCurrentData())
|
||||
LLAudioData *adp = getCurrentData();
|
||||
if (adp)
|
||||
{
|
||||
// Hack - try and load the sound. Will do this as a callback
|
||||
// on decode later.
|
||||
if (getCurrentData()->load() && getCurrentData()->getBuffer())
|
||||
if (adp->load() && adp->getBuffer())
|
||||
{
|
||||
play(getCurrentData()->getID());
|
||||
play(adp->getID());
|
||||
}
|
||||
else
|
||||
else if (adp->hasCompletedDecode()) // Only mark corrupted after decode is done
|
||||
{
|
||||
llwarns << "Marking LLAudioSource corrupted for " << adp->getID() << llendl;
|
||||
mCorrupted = true ;
|
||||
}
|
||||
}
|
||||
@@ -1812,6 +1816,7 @@ LLAudioData::LLAudioData(const LLUUID &uuid) :
|
||||
mBufferp(NULL),
|
||||
mHasLocalData(false),
|
||||
mHasDecodedData(false),
|
||||
mHasCompletedDecode(false),
|
||||
mHasValidData(true)
|
||||
{
|
||||
if (uuid.isNull())
|
||||
@@ -1823,12 +1828,13 @@ LLAudioData::LLAudioData(const LLUUID &uuid) :
|
||||
if (gAudiop && gAudiop->hasDecodedFile(uuid))
|
||||
{
|
||||
// Already have a decoded version, don't need to decode it.
|
||||
mHasLocalData = true;
|
||||
mHasDecodedData = true;
|
||||
setHasLocalData(true);
|
||||
setHasDecodedData(true);
|
||||
setHasCompletedDecode(true);
|
||||
}
|
||||
else if (gAssetStorage && gAssetStorage->hasLocalAsset(uuid, LLAssetType::AT_SOUND))
|
||||
{
|
||||
mHasLocalData = true;
|
||||
setHasLocalData(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -408,10 +408,12 @@ public:
|
||||
|
||||
bool hasLocalData() const { return mHasLocalData; }
|
||||
bool hasDecodedData() const { return mHasDecodedData; }
|
||||
bool hasCompletedDecode() const { return mHasCompletedDecode; }
|
||||
bool hasValidData() const { return mHasValidData; }
|
||||
|
||||
void setHasLocalData(const bool hld) { mHasLocalData = hld; }
|
||||
void setHasDecodedData(const bool hdd) { mHasDecodedData = hdd; }
|
||||
void setHasCompletedDecode(const bool hcd) { mHasCompletedDecode = hcd; }
|
||||
void setHasValidData(const bool hvd) { mHasValidData = hvd; }
|
||||
|
||||
friend class LLAudioEngine; // Severe laziness, bad.
|
||||
@@ -419,9 +421,10 @@ public:
|
||||
protected:
|
||||
LLUUID mID;
|
||||
LLAudioBuffer *mBufferp; // If this data is being used by the audio system, a pointer to the buffer will be set here.
|
||||
bool mHasLocalData;
|
||||
bool mHasDecodedData;
|
||||
bool mHasValidData;
|
||||
bool mHasLocalData; // Set true if the sound asset file is available locally
|
||||
bool mHasDecodedData; // Set true if the sound file has been decoded
|
||||
bool mHasCompletedDecode; // Set true when the sound is decoded
|
||||
bool mHasValidData; // Set false if decoding failed, meaning the sound asset is bad
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -105,10 +105,6 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata)
|
||||
|
||||
U32 version;
|
||||
FMOD_RESULT result;
|
||||
int numdrivers;
|
||||
FMOD_SPEAKERMODE speakermode;
|
||||
FMOD_CAPS caps;
|
||||
char name[256];
|
||||
|
||||
LL_DEBUGS("AppInit") << "LLAudioEngine_FMODEX::init() initializing FMOD" << LL_ENDL;
|
||||
|
||||
@@ -124,11 +120,16 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata)
|
||||
|
||||
if (version < FMOD_VERSION)
|
||||
{
|
||||
LL_WARNS("AppInit") << "Error : You are using the wrong FMOD version (" << version
|
||||
<< ")! You should be using FMOD " << FMOD_VERSION << LL_ENDL;
|
||||
LL_WARNS("AppInit") << "Error : You are using the wrong FMOD Ex version (" << version
|
||||
<< ")! You should be using FMOD Ex" << FMOD_VERSION << LL_ENDL;
|
||||
}
|
||||
|
||||
#if LL_WINDOWS
|
||||
int numdrivers;
|
||||
FMOD_SPEAKERMODE speakermode;
|
||||
FMOD_CAPS caps;
|
||||
char name[256];
|
||||
|
||||
//Is this block applicable to linux?
|
||||
{
|
||||
result = mSystem->getNumDrivers(&numdrivers);
|
||||
@@ -173,7 +174,7 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata)
|
||||
#endif //LL_WINDOWS
|
||||
|
||||
// In this case, all sounds, PLUS wind and stream will be software.
|
||||
result = mSystem->setSoftwareChannels(num_channels+2);
|
||||
result = mSystem->setSoftwareChannels(num_channels + 2);
|
||||
Check_FMOD_Error(result,"FMOD::System::setSoftwareChannels");
|
||||
|
||||
U32 fmod_flags = FMOD_INIT_NORMAL;
|
||||
@@ -181,73 +182,67 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata)
|
||||
fmod_flags |= FMOD_INIT_ENABLE_PROFILE;
|
||||
|
||||
#if LL_LINUX
|
||||
// If we don't set an output method, Linux FMOD always
|
||||
// decides on OSS and fails otherwise. So we'll manually
|
||||
// try ESD, then OSS, then ALSA.
|
||||
// Why this order? See SL-13250, but in short, OSS emulated
|
||||
// on top of ALSA is ironically more reliable than raw ALSA.
|
||||
// Ack, and ESD has more reliable failure modes - but has worse
|
||||
// latency - than all of them, so wins for now.
|
||||
bool audio_ok = false;
|
||||
|
||||
if (!audio_ok)
|
||||
{
|
||||
if (NULL == getenv("LL_BAD_FMODEX_ESD")) /*Flawfinder: ignore*/
|
||||
if (NULL == getenv("LL_BAD_FMOD_PULSEAUDIO")) /*Flawfinder: ignore*/
|
||||
{
|
||||
LL_DEBUGS("AppInit") << "Trying ESD audio output..." << LL_ENDL;
|
||||
if(mSystem->SetOutput(FMOD_OUTPUTTYPE_ESD) == FMOD_OK &&
|
||||
(result = mSystem->init(num_channels, fmod_flags, 0)) == FMOD_OK)
|
||||
LL_DEBUGS("AppInit") << "Trying PulseAudio audio output..." << LL_ENDL;
|
||||
if(mSystem->setOutput(FMOD_OUTPUTTYPE_PULSEAUDIO) == FMOD_OK &&
|
||||
(result = mSystem->init(num_channels + 2, fmod_flags, 0)) == FMOD_OK)
|
||||
{
|
||||
LL_DEBUGS("AppInit") << "ESD audio output initialized OKAY" << LL_ENDL;
|
||||
LL_DEBUGS("AppInit") << "PulseAudio output initialized OKAY" << LL_ENDL;
|
||||
audio_ok = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Check_FMOD_Error(result, "ESD audio output FAILED to initialize");
|
||||
Check_FMOD_Error(result, "PulseAudio audio output FAILED to initialize");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_DEBUGS("AppInit") << "ESD audio output SKIPPED" << LL_ENDL;
|
||||
LL_DEBUGS("AppInit") << "PulseAudio audio output SKIPPED" << LL_ENDL;
|
||||
}
|
||||
}
|
||||
if (!audio_ok)
|
||||
{
|
||||
if (NULL == getenv("LL_BAD_FMODEX_OSS")) /*Flawfinder: ignore*/
|
||||
if (NULL == getenv("LL_BAD_FMOD_ALSA")) /*Flawfinder: ignore*/
|
||||
{
|
||||
LL_DEBUGS("AppInit") << "Trying OSS audio output..." << LL_ENDL;
|
||||
if(mSystem->SetOutput(FMOD_OUTPUTTYPE_OSS) == FMOD_OK &&
|
||||
(result = mSystem->init(num_channels, fmod_flags, 0)) == FMOD_OK)
|
||||
LL_DEBUGS("AppInit") << "Trying ALSA audio output..." << LL_ENDL;
|
||||
if(mSystem->setOutput(FMOD_OUTPUTTYPE_ALSA) == FMOD_OK &&
|
||||
(result = mSystem->init(num_channels + 2, fmod_flags, 0)) == FMOD_OK)
|
||||
{
|
||||
LL_DEBUGS("AppInit") << "OSS audio output initialized OKAY" << LL_ENDL;
|
||||
LL_DEBUGS("AppInit") << "ALSA audio output initialized OKAY" << LL_ENDL;
|
||||
audio_ok = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Check_FMOD_Error(result, "OSS audio output FAILED to initialize" << LL_ENDL;
|
||||
Check_FMOD_Error(result, "ALSA audio output FAILED to initialize");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_DEBUGS("AppInit") << "OSS audio output SKIPPED" << LL_ENDL;
|
||||
LL_DEBUGS("AppInit") << "ALSA audio output SKIPPED" << LL_ENDL;
|
||||
}
|
||||
}
|
||||
if (!audio_ok)
|
||||
{
|
||||
if (NULL == getenv("LL_BAD_FMODEX_ALSA")) /*Flawfinder: ignore*/
|
||||
if (NULL == getenv("LL_BAD_FMOD_OSS")) /*Flawfinder: ignore*/
|
||||
{
|
||||
LL_DEBUGS("AppInit") << "Trying ALSA audio output..." << LL_ENDL;
|
||||
if(mSystem->SetOutput(FMOD_OUTPUTTYPE_ALSA) &&
|
||||
(result = mSystem->init(num_channels, fmod_flags, 0)) == FMOD_OK)
|
||||
LL_DEBUGS("AppInit") << "Trying OSS audio output..." << LL_ENDL;
|
||||
if(mSystem->setOutput(FMOD_OUTPUTTYPE_OSS) == FMOD_OK &&
|
||||
(result = mSystem->init(num_channels + 2, fmod_flags, 0)) == FMOD_OK)
|
||||
{
|
||||
LL_DEBUGS("AppInit") << "ALSA audio output initialized OKAY" << LL_ENDL;
|
||||
LL_DEBUGS("AppInit") << "OSS audio output initialized OKAY" << LL_ENDL;
|
||||
audio_ok = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Check_FMOD_Error(result, "ALSA audio output FAILED to initialize");
|
||||
Check_FMOD_Error(result, "OSS audio output FAILED to initialize");
|
||||
}
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_DEBUGS("AppInit") << "OSS audio output SKIPPED" << LL_ENDL;
|
||||
}
|
||||
@@ -258,25 +253,20 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata)
|
||||
return false;
|
||||
}
|
||||
|
||||
// On Linux, FMOD causes a SIGPIPE for some netstream error
|
||||
// conditions (an FMOD bug); ignore SIGPIPE so it doesn't crash us.
|
||||
// NOW FIXED in FMOD 3.x since 2006-10-01.
|
||||
//signal(SIGPIPE, SIG_IGN);
|
||||
|
||||
// We're interested in logging which output method we
|
||||
// ended up with, for QA purposes.
|
||||
FMOD_OUTPUTTYPE output_type;
|
||||
mSystem->getOutput(output_type);
|
||||
mSystem->getOutput(&output_type);
|
||||
switch (output_type)
|
||||
{
|
||||
case FSOUND_OUTPUT_NOSOUND:
|
||||
LL_DEBUGS("AppInit") << "Audio output: NoSound" << LL_ENDL; break;
|
||||
case FSOUND_OUTPUT_OSS:
|
||||
LL_DEBUGS("AppInit") << "Audio output: OSS" << LL_ENDL; break;
|
||||
case FSOUND_OUTPUT_ESD:
|
||||
LL_DEBUGS("AppInit") << "Audio output: ESD" << LL_ENDL; break;
|
||||
case FSOUND_OUTPUT_ALSA:
|
||||
LL_DEBUGS("AppInit") << "Audio output: ALSA" << LL_ENDL; break;
|
||||
case FMOD_OUTPUTTYPE_NOSOUND:
|
||||
LL_INFOS("AppInit") << "Audio output: NoSound" << LL_ENDL; break;
|
||||
case FMOD_OUTPUTTYPE_PULSEAUDIO:
|
||||
LL_INFOS("AppInit") << "Audio output: PulseAudio" << LL_ENDL; break;
|
||||
case FMOD_OUTPUTTYPE_ALSA:
|
||||
LL_INFOS("AppInit") << "Audio output: ALSA" << LL_ENDL; break;
|
||||
case FMOD_OUTPUTTYPE_OSS:
|
||||
LL_INFOS("AppInit") << "Audio output: OSS" << LL_ENDL; break;
|
||||
default:
|
||||
LL_INFOS("AppInit") << "Audio output: Unknown!" << LL_ENDL; break;
|
||||
};
|
||||
@@ -297,7 +287,7 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata)
|
||||
*/
|
||||
result = mSystem->init( num_channels + 2, fmod_flags, 0);
|
||||
}
|
||||
if(Check_FMOD_Error(result, "Error initializing FMOD"))
|
||||
if(Check_FMOD_Error(result, "Error initializing FMOD Ex"))
|
||||
return false;
|
||||
#endif
|
||||
|
||||
@@ -305,7 +295,7 @@ bool LLAudioEngine_FMODEX::init(const S32 num_channels, void* userdata)
|
||||
if (!getStreamingAudioImpl()) // no existing implementation added
|
||||
setStreamingAudioImpl(new LLStreamingAudio_FMODEX(mSystem));
|
||||
|
||||
LL_DEBUGS("AppInit") << "LLAudioEngine_FMODEX::init() FMOD initialized correctly" << LL_ENDL;
|
||||
LL_INFOS("AppInit") << "LLAudioEngine_FMODEX::init() FMOD Ex initialized correctly" << LL_ENDL;
|
||||
|
||||
mInited = true;
|
||||
|
||||
@@ -321,10 +311,10 @@ std::string LLAudioEngine_FMODEX::getDriverName(bool verbose)
|
||||
U32 version;
|
||||
if(!Check_FMOD_Error(mSystem->getVersion(&version), "FMOD::System::getVersion"))
|
||||
{
|
||||
return llformat("FMOD version %1x.%02x.%02x", version >> 16, version >> 8 & 0x000000FF, version & 0x000000FF);
|
||||
return llformat("FMOD Ex %1x.%02x.%02x", version >> 16, version >> 8 & 0x000000FF, version & 0x000000FF);
|
||||
}
|
||||
}
|
||||
return "FMOD";
|
||||
return "FMODEx";
|
||||
}
|
||||
|
||||
|
||||
@@ -342,12 +332,13 @@ void LLAudioEngine_FMODEX::shutdown()
|
||||
{
|
||||
stopInternetStream();
|
||||
|
||||
llinfos << "About to LLAudioEngine::shutdown()" << llendl;
|
||||
LLAudioEngine::shutdown();
|
||||
|
||||
llinfos << "LLAudioEngine_FMODEX::shutdown() closing FMOD" << llendl;
|
||||
llinfos << "LLAudioEngine_FMODEX::shutdown() closing FMOD Ex" << llendl;
|
||||
mSystem->close();
|
||||
mSystem->release();
|
||||
llinfos << "LLAudioEngine_FMODEX::shutdown() done closing FMOD" << llendl;
|
||||
llinfos << "LLAudioEngine_FMODEX::shutdown() done closing FMOD Ex" << llendl;
|
||||
|
||||
delete mListenerp;
|
||||
mListenerp = NULL;
|
||||
|
||||
@@ -89,7 +89,7 @@ S32 check_for_invalid_wav_formats(const std::string& in_fname, std::string& erro
|
||||
|
||||
// ********************************
|
||||
LLAPRFile infile ;
|
||||
infile.open(in_fname,LL_APR_RB);
|
||||
infile.open(in_fname,LL_APR_RB);
|
||||
// ********************************
|
||||
if (!infile.getFileHandle())
|
||||
{
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
|
||||
#if LL_WINDOWS
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "linden_common.h"
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#if LL_DARWIN || LL_LINUX
|
||||
// not required or present on Win32
|
||||
#include <sys/wait.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
LLProcessLauncher::LLProcessLauncher()
|
||||
|
||||
@@ -416,7 +416,7 @@ public:
|
||||
{ //we have data
|
||||
mData.erase(data);
|
||||
mElementCount = mData.size();
|
||||
notifyRemoval(data);
|
||||
this->notifyRemoval(data);
|
||||
checkAlive();
|
||||
return true;
|
||||
}
|
||||
@@ -454,7 +454,7 @@ public:
|
||||
{
|
||||
mData.erase(data);
|
||||
mElementCount = mData.size();
|
||||
notifyRemoval(data);
|
||||
this->notifyRemoval(data);
|
||||
llwarns << "FOUND!" << llendl;
|
||||
checkAlive();
|
||||
return;
|
||||
@@ -663,7 +663,7 @@ public:
|
||||
//(don't notify listeners of addition)
|
||||
for (U32 i = 0; i < child->getChildCount(); i++)
|
||||
{
|
||||
addChild(child->getChild(i), TRUE);
|
||||
this->addChild(child->getChild(i), TRUE);
|
||||
}
|
||||
|
||||
//destroy child
|
||||
@@ -707,10 +707,10 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this->getSize()[0] > data->getBinRadius() && isInside(data->getPositionGroup()))
|
||||
if (this->getSize()[0] > data->getBinRadius() && this->isInside(data->getPositionGroup()))
|
||||
{
|
||||
//we got it, just act like a branch
|
||||
oct_node* node = getNodeAt(data);
|
||||
oct_node* node = this->getNodeAt(data);
|
||||
if (node == this)
|
||||
{
|
||||
LLOctreeNode<T>::insert(data);
|
||||
@@ -723,7 +723,7 @@ public:
|
||||
else if (this->getChildCount() == 0)
|
||||
{
|
||||
//first object being added, just wrap it up
|
||||
while (!(this->getSize()[0] > data->getBinRadius() && isInside(data->getPositionGroup())))
|
||||
while (!(this->getSize()[0] > data->getBinRadius() && this->isInside(data->getPositionGroup())))
|
||||
{
|
||||
LLVector4a center, size;
|
||||
center = this->getCenter();
|
||||
@@ -738,7 +738,7 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
while (!(this->getSize()[0] > data->getBinRadius() && isInside(data->getPositionGroup())))
|
||||
while (!(this->getSize()[0] > data->getBinRadius() && this->isInside(data->getPositionGroup())))
|
||||
{
|
||||
//the data is outside the root node, we need to grow
|
||||
LLVector4a center(this->getCenter());
|
||||
@@ -764,7 +764,7 @@ public:
|
||||
|
||||
//clear our children and add the root copy
|
||||
this->clearChildren();
|
||||
addChild(newnode);
|
||||
this->addChild(newnode);
|
||||
}
|
||||
|
||||
//insert the data
|
||||
|
||||
@@ -704,9 +704,9 @@ BOOL LLColor4::parseColor(const std::string& buf, LLColor4* color)
|
||||
{
|
||||
color->set(LLColor4::orange6);
|
||||
}
|
||||
else if ( "clear" == color_name )
|
||||
else if ( "clear" == color_name || "transparent" == color_name )
|
||||
{
|
||||
color->set(0.f, 0.f, 0.f, 0.f);
|
||||
color->set(LLColor4::transparent);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -202,8 +202,8 @@ void LLCurl::Responder::completedHeader(U32 status, const std::string& reason, c
|
||||
|
||||
}
|
||||
|
||||
namespace boost
|
||||
{
|
||||
//namespace boost
|
||||
//{
|
||||
void intrusive_ptr_add_ref(LLCurl::Responder* p)
|
||||
{
|
||||
++p->mReferenceCount;
|
||||
@@ -216,7 +216,7 @@ namespace boost
|
||||
delete p;
|
||||
}
|
||||
}
|
||||
};
|
||||
//};
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -378,11 +378,11 @@ private:
|
||||
void cleanupMulti(LLCurl::Multi* multi) ;
|
||||
} ;
|
||||
|
||||
namespace boost
|
||||
{
|
||||
//namespace boost
|
||||
//{
|
||||
void intrusive_ptr_add_ref(LLCurl::Responder* p);
|
||||
void intrusive_ptr_release(LLCurl::Responder* p);
|
||||
};
|
||||
//};
|
||||
|
||||
|
||||
class LLCurlRequest
|
||||
|
||||
@@ -55,11 +55,11 @@ void pump_debug(const char *file, S32 line);
|
||||
/**
|
||||
* intrusive pointer support
|
||||
*/
|
||||
namespace boost
|
||||
{
|
||||
//namespace boost
|
||||
//{
|
||||
void intrusive_ptr_add_ref(LLIOPipe* p);
|
||||
void intrusive_ptr_release(LLIOPipe* p);
|
||||
};
|
||||
//};
|
||||
|
||||
/**
|
||||
* @class LLIOPipe
|
||||
@@ -250,13 +250,13 @@ protected:
|
||||
LLPumpIO* pump) = 0;
|
||||
|
||||
private:
|
||||
friend void boost::intrusive_ptr_add_ref(LLIOPipe* p);
|
||||
friend void boost::intrusive_ptr_release(LLIOPipe* p);
|
||||
friend void /*boost::*/intrusive_ptr_add_ref(LLIOPipe* p);
|
||||
friend void /*boost::*/intrusive_ptr_release(LLIOPipe* p);
|
||||
U32 mReferenceCount;
|
||||
};
|
||||
|
||||
namespace boost
|
||||
{
|
||||
//namespace boost
|
||||
//{
|
||||
inline void intrusive_ptr_add_ref(LLIOPipe* p)
|
||||
{
|
||||
++p->mReferenceCount;
|
||||
@@ -268,7 +268,7 @@ namespace boost
|
||||
delete p;
|
||||
}
|
||||
}
|
||||
};
|
||||
//};
|
||||
|
||||
|
||||
#if 0
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
#include "net.h"
|
||||
#include "message.h"
|
||||
|
||||
namespace boost
|
||||
{
|
||||
//namespace boost
|
||||
//{
|
||||
void intrusive_ptr_add_ref(LLRegionPresenceVerifier::Response* p)
|
||||
{
|
||||
++p->mReferenceCount;
|
||||
@@ -46,7 +46,7 @@ namespace boost
|
||||
delete p;
|
||||
}
|
||||
}
|
||||
};
|
||||
//};
|
||||
|
||||
LLRegionPresenceVerifier::Response::~Response()
|
||||
{
|
||||
|
||||
@@ -89,10 +89,10 @@ public:
|
||||
};
|
||||
};
|
||||
|
||||
namespace boost
|
||||
{
|
||||
//namespace boost
|
||||
//{
|
||||
void intrusive_ptr_add_ref(LLRegionPresenceVerifier::Response* p);
|
||||
void intrusive_ptr_release(LLRegionPresenceVerifier::Response* p);
|
||||
};
|
||||
//};
|
||||
|
||||
#endif //LL_LLREGIONPRESENCEVERIFIER_H
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <winsock2.h>
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
|
||||
@@ -77,8 +77,8 @@ void LLCurl::Responder::result(LLSD const&)
|
||||
{
|
||||
}
|
||||
|
||||
namespace boost
|
||||
{
|
||||
//namespace boost
|
||||
//{
|
||||
void intrusive_ptr_add_ref(LLCurl::Responder* p)
|
||||
{
|
||||
++p->mReferenceCount;
|
||||
@@ -91,5 +91,5 @@ namespace boost
|
||||
delete p;
|
||||
}
|
||||
}
|
||||
};
|
||||
//};
|
||||
|
||||
|
||||
@@ -90,6 +90,7 @@ class LLGLFence
|
||||
public:
|
||||
virtual void placeFence() = 0;
|
||||
virtual void wait() = 0;
|
||||
virtual ~LLGLFence() {}
|
||||
};
|
||||
|
||||
//============================================================================
|
||||
|
||||
@@ -7,6 +7,7 @@ class LLDeleteJob
|
||||
{
|
||||
public:
|
||||
virtual BOOL work(U32& completed);
|
||||
virtual ~LLDeleteJob() {}
|
||||
};
|
||||
class LLViewDeleteJob : public LLDeleteJob
|
||||
{
|
||||
|
||||
@@ -2372,7 +2372,7 @@ BOOL LLScrollListCtrl::handleKeyHere(KEY key,MASK mask )
|
||||
if (mCanSelect)
|
||||
{
|
||||
// Ignore capslock
|
||||
mask = mask;
|
||||
//mask = mask; //Why was this here?
|
||||
|
||||
if (mask == MASK_NONE)
|
||||
{
|
||||
|
||||
@@ -54,6 +54,7 @@ static bool isProcessAlive(U32 pid)
|
||||
}
|
||||
|
||||
#else //Everyone Else
|
||||
#include <unistd.h>
|
||||
|
||||
static U32 getPID() {
|
||||
return getpid();
|
||||
|
||||
@@ -2621,8 +2621,9 @@ std::vector<std::string> LLWindowSDL::getDynamicFallbackFontList()
|
||||
if (sortpat)
|
||||
{
|
||||
// Sort the list of system fonts from most-to-least-desirable.
|
||||
FcResult fresult;
|
||||
fs = FcFontSort(NULL, sortpat, elide_unicode_coverage,
|
||||
NULL, NULL);
|
||||
NULL, &fresult);
|
||||
FcPatternDestroy(sortpat);
|
||||
}
|
||||
|
||||
|
||||
@@ -838,7 +838,7 @@ namespace LLInitParam
|
||||
BaseBlock::addParam(block_descriptor, param_descriptor, name);
|
||||
}
|
||||
|
||||
setValue(value);
|
||||
this->setValue(value);
|
||||
}
|
||||
|
||||
bool isProvided() const { return Param::anyProvided(); }
|
||||
@@ -926,7 +926,7 @@ namespace LLInitParam
|
||||
void set(value_assignment_t val, bool flag_as_provided = true)
|
||||
{
|
||||
param_value_t::clearValueName();
|
||||
setValue(val);
|
||||
this->setValue(val);
|
||||
setProvided(flag_as_provided);
|
||||
}
|
||||
|
||||
@@ -1068,7 +1068,7 @@ namespace LLInitParam
|
||||
// assign block contents to this param-that-is-a-block
|
||||
void set(value_assignment_t val, bool flag_as_provided = true)
|
||||
{
|
||||
setValue(val);
|
||||
this->setValue(val);
|
||||
param_value_t::clearValueName();
|
||||
// force revalidation of block
|
||||
// next call to isProvided() will update provision status based on validity
|
||||
@@ -1723,7 +1723,7 @@ namespace LLInitParam
|
||||
|
||||
Optional& operator =(value_assignment_t val)
|
||||
{
|
||||
set(val);
|
||||
this->set(val);
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -1752,7 +1752,7 @@ namespace LLInitParam
|
||||
|
||||
Mandatory& operator =(value_assignment_t val)
|
||||
{
|
||||
set(val);
|
||||
this->set(val);
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
@@ -487,10 +487,34 @@ void LLScriptLibrary::init()
|
||||
addFunction(10.f, 0.f, dummy_func, "llSetContentType", NULL, "ki");
|
||||
addFunction(10.f, 0.f, dummy_func, "llLinkSitTarget", NULL, "ivr");
|
||||
addFunction(10.f, 0.f, dummy_func, "llAvatarOnLinkSitTarget", "k", "i");
|
||||
/* No info on these new functions yet....
|
||||
* addFunction(10.f, 0.f, dummy_func, "llSetVelocity", "", "");
|
||||
* addFunction(10.f, 0.f, dummy_func, "llSetRotationalVelocity", "", "");
|
||||
*/
|
||||
addFunction(10.f, 0.f, dummy_func, "llGetMassMKS", "f", NULL);
|
||||
addFunction(10.f, 0.f, dummy_func, "llGetMemoryLimit", "i", NULL);
|
||||
addFunction(10.f, 0.f, dummy_func, "llGetParcelMusicURL", "s", NULL);
|
||||
addFunction(10.f, 0.f, dummy_func, "llGetPhysicsMaterial", "l", NULL);
|
||||
addFunction(10.f, 0.f, dummy_func, "llManageEstateAccess", "i", "ik");
|
||||
addFunction(10.f, 0.f, dummy_func, "llSetAngularVelocity", NULL, "vi");
|
||||
addFunction(10.f, 0.f, dummy_func, "llSetKeyframedMotion", NULL, "ll");
|
||||
addFunction(10.f, 0.f, dummy_func, "llSetPhysicsMaterial", NULL, "iffff");
|
||||
addFunction(10.f, 0.f, dummy_func, "llSetRegionPos", "i", "v");
|
||||
addFunction(10.f, 0.f, dummy_func, "llSetVelocity", NULL, "vi");
|
||||
addFunction(10.f, 0.f, dummy_func, "llTransferLindenDollars", "k", "ki");
|
||||
|
||||
|
||||
//Pathfinder functions. Current state: alpha, thus subject to change.
|
||||
//This and the preceding line are to be removed in future revisions of this file.
|
||||
addFunction(10.f, 0.f, dummy_func, "llCreateCharacter", NULL, "l");
|
||||
addFunction(10.f, 0.f, dummy_func, "llDeleteCharacter", NULL, NULL);
|
||||
addFunction(10.f, 0.f, dummy_func, "llEvade", NULL, "kl");
|
||||
addFunction(10.f, 0.f, dummy_func, "llExecCharacterCmd", NULL, "il");
|
||||
addFunction(10.f, 0.f, dummy_func, "llGetClosestNavPoint", "l", "vl");
|
||||
addFunction(10.f, 0.f, dummy_func, "llFleeFrom", NULL, "vfl");
|
||||
addFunction(10.f, 0.f, dummy_func, "llNavigateTo", NULL, "vl");
|
||||
addFunction(10.f, 0.f, dummy_func, "llPatrolPoints", NULL, "ll");
|
||||
addFunction(10.f, 0.f, dummy_func, "llPursue", NULL, "kl");
|
||||
addFunction(10.f, 0.f, dummy_func, "llUpdateCharacter", NULL, "l");
|
||||
addFunction(10.f, 0.f, dummy_func, "llWanderWithin", NULL, "vfl");
|
||||
|
||||
|
||||
|
||||
// REGARDING OSSL FUNCTIONS
|
||||
// These additions should be posted underneath the llFunctions
|
||||
@@ -624,6 +648,16 @@ void LLScriptLibrary::init()
|
||||
addFunction(10.f, 0.f, dummy_func, "osNpcGetPos", "v", "k");
|
||||
addFunction(10.f, 0.f, dummy_func, "osNpcStopMoveToTarget", NULL, "k");
|
||||
|
||||
addFunction(10.f, 0.f, dummy_func, "osIsNpc", "i", "k");
|
||||
addFunction(10.f, 0.f, dummy_func, "osNpcGetOwner", "k", "k");
|
||||
addFunction(10.f, 0.f, dummy_func, "osGetGridCustom", "s", "s");
|
||||
addFunction(10.f, 0.f, dummy_func, "osGetGridHomeURI", "s", NULL);
|
||||
addFunction(10.f, 0.f, dummy_func, "osNpcPlayAnimation", NULL, "ks");
|
||||
addFunction(10.f, 0.f, dummy_func, "osNpcSit", NULL, "kki");
|
||||
addFunction(10.f, 0.f, dummy_func, "osNpcStand", NULL, "k");
|
||||
addFunction(10.f, 0.f, dummy_func, "osNpcStopAnimation", NULL, "ks");
|
||||
addFunction(10.f, 0.f, dummy_func, "osSetRot", NULL, "kq");
|
||||
|
||||
}
|
||||
|
||||
LLScriptLibraryFunction::LLScriptLibraryFunction(F32 eu, F32 st, void (*exec_func)(LLScriptLibData *, LLScriptLibData *, const LLUUID &), const char *name, const char *ret_type, const char *args, BOOL god_only)
|
||||
|
||||
@@ -1354,39 +1354,40 @@ if (OPENAL)
|
||||
endif (OPENAL)
|
||||
|
||||
if (FMOD OR FMODEX)
|
||||
if(FMODEX)
|
||||
set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODEX")
|
||||
endif(FMODEX)
|
||||
if(FMOD)
|
||||
if (FMODEX)
|
||||
set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODEX")
|
||||
endif (FMODEX)
|
||||
if (FMOD)
|
||||
set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMOD")
|
||||
endif(FMOD)
|
||||
endif (FMOD)
|
||||
|
||||
if (NOT WINDOWS)
|
||||
if (DARWIN)
|
||||
set(fmodwrapper_SOURCE_FILES fmodwrapper.cpp)
|
||||
add_library(fmodwrapper SHARED ${fmodwrapper_SOURCE_FILES})
|
||||
if(FMOD AND FMODEX)
|
||||
set(fmodwrapper_needed_LIBRARIES "${FMODEX_LIBRARY} ${FMOD_LIBRARY}")
|
||||
else(FMOD AND FMODEX)
|
||||
if(FMODEX)
|
||||
set(fmodwrapper_needed_LIBRARIES ${FMODEX_LIBRARY})
|
||||
endif(FMODEX)
|
||||
if(FMOD)
|
||||
set(fmodwrapper_needed_LIBRARIES "${FMOD_LIBRARY}")
|
||||
endif(FMOD)
|
||||
endif(FMOD AND FMODEX)
|
||||
if (DARWIN)
|
||||
list(APPEND fmodwrapper_needed_LIBRARIES ${CARBON_LIBRARY})
|
||||
set_target_properties(
|
||||
fmodwrapper
|
||||
PROPERTIES
|
||||
BUILD_WITH_INSTALL_RPATH 1
|
||||
INSTALL_NAME_DIR "@executable_path/../Resources"
|
||||
LINK_FLAGS "-unexported_symbols_list \"${CMAKE_CURRENT_SOURCE_DIR}/fmod_hidden_symbols.exp\""
|
||||
)
|
||||
endif (DARWIN)
|
||||
if (FMODEX)
|
||||
set(fmodwrapper_needed_LIBRARIES ${FMODEX_LIBRARY} ${CARBON_LIBRARY})
|
||||
endif (FMODEX)
|
||||
if (FMOD)
|
||||
set(fmodwrapper_needed_LIBRARIES ${FMOD_LIBRARY} ${CARBON_LIBRARY})
|
||||
endif (FMOD)
|
||||
set_target_properties(
|
||||
fmodwrapper
|
||||
PROPERTIES
|
||||
BUILD_WITH_INSTALL_RPATH 1
|
||||
INSTALL_NAME_DIR "@executable_path/../Resources"
|
||||
LINK_FLAGS "-unexported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/fmod_hidden_symbols.exp"
|
||||
)
|
||||
set(FMODWRAPPER_LIBRARY fmodwrapper)
|
||||
target_link_libraries(fmodwrapper ${fmodwrapper_needed_LIBRARIES})
|
||||
endif (NOT WINDOWS)
|
||||
else (DARWIN)
|
||||
# fmodwrapper unnecessary on linux or windows, for fmod and fmodex
|
||||
if (FMODEX)
|
||||
set(FMODWRAPPER_LIBRARY ${FMODEX_LIBRARY})
|
||||
endif (FMODEX)
|
||||
if (FMOD)
|
||||
set(FMODWRAPPER_LIBRARY ${FMOD_LIBRARY})
|
||||
endif (FMOD)
|
||||
endif (DARWIN)
|
||||
endif (FMOD OR FMODEX)
|
||||
|
||||
set_source_files_properties(llstartup.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}")
|
||||
|
||||
@@ -51,6 +51,8 @@ changed changed( integer change ):Triggered various event change the task:(tes
|
||||
remote_data remote_data(integer event_type, key channel, key message_id, string sender,integer idata, string sdata):Triggered by various XML-RPC calls (event_type will be one of REMOTE_DATA_CHANNEL, REMOTE_DATA_REQUEST, REMOTE_DATA_REPLY)
|
||||
http_response http_response(key request_id, integer status, list metadata, string body):Triggered when task receives a response to one of its llHTTPRequests
|
||||
http_request http_request(key id, string method, string body):Triggered when task receives an http request against a public URL
|
||||
transaction_result transaction_result(key id, integer success, string data):Triggered when task receives asynchronous data.
|
||||
path_update path_update(integer type, list reserved):Triggered when the state of a pathfinder character changes. Note; "list reserved" is not currently used
|
||||
|
||||
# integer constants
|
||||
[word .1, .1, .5]
|
||||
@@ -605,6 +607,121 @@ WL_CLOUD_SCROLL_Y_LOCK Windlight Cloud Scroll Y Lock
|
||||
WL_CLOUD_SCROLL_X_LOCK Windlight Cloud Scroll X Lock
|
||||
WL_DRAW_CLASSIC_CLOUDS Windlight Draw Classic Clouds
|
||||
|
||||
# OSSL constants
|
||||
STATS_TIME_DILATION
|
||||
STATS_SIM_FPS
|
||||
STATS_PHYSICS_FPS
|
||||
STATS_AGENT_UPDATES
|
||||
STATS_ROOT_AGENTS
|
||||
STATS_CHILD_AGENTS
|
||||
STATS_TOTAL_PRIMS
|
||||
STATS_ACTIVE_PRIMS
|
||||
STATS_FRAME_MS
|
||||
STATS_NET_MS
|
||||
STATS_PHYSICS_MS
|
||||
STATS_IMAGE_MS
|
||||
STATS_OTHER_MS
|
||||
STATS_IN_PACKETS_PER_SECOND
|
||||
STATS_OUT_PACKETS_PER_SECOND
|
||||
STATS_UNACKED_BYTES
|
||||
STATS_AGENT_MS
|
||||
STATS_PENDING_DOWNLOADS
|
||||
STATS_PENDING_UPLOADS
|
||||
STATS_ACTIVE_SCRIPTS
|
||||
STATS_SCRIPT_LPS
|
||||
|
||||
## Constants for osNpc* functions
|
||||
NPC
|
||||
OS_NPC_CREATOR_OWNED
|
||||
OS_NPC_NOT_OWNED
|
||||
OS_NPC_SENSE_AS_AGENT
|
||||
OS_NPC_FLY
|
||||
OS_NPC_NO_FLY
|
||||
OS_NPC_LAND_AT_TARGET
|
||||
OS_NPC_SIT_NOW
|
||||
|
||||
## Missing LSL constants (from http://wiki.secondlife.com/wiki/Category:LSL_Constants)
|
||||
## Adding now, sorting later
|
||||
ATTACH_HUD_BOTTOM
|
||||
ATTACH_HUD_BOTTOM_LEFT
|
||||
ATTACH_HUD_BOTTOM_RIGHT
|
||||
ATTACH_HUD_CENTER_1
|
||||
ATTACH_HUD_CENTER_2
|
||||
ATTACH_HUD_TOP_CENTER
|
||||
ATTACH_HUD_TOP_LEFT
|
||||
ATTACH_HUD_TOP_RIGHT
|
||||
ATTACH_LEFT_PEC
|
||||
ATTACH_RIGHT_PEC
|
||||
HTTP_VERBOSE_THROTTLE
|
||||
OBJECT_PRIM_EQUIVALENCE
|
||||
PARCEL_MEDIA_COMMAND_LOOP_SET
|
||||
PRIM_LINK_TARGET
|
||||
PRIM_OMEGA
|
||||
PRIM_PHYSICS_MATERIAL
|
||||
PRIM_PHYSICS_SHAPE_TYPE
|
||||
PRIM_POS_LOCAL
|
||||
PRIM_ROT_LOCAL
|
||||
PROFILE_NONE
|
||||
PROFILE_SCRIPT_MEMORY
|
||||
RCERR_CAST_TIME_EXCEEDED
|
||||
RCERR_SIM_PERF_LOW
|
||||
RCERR_UNKNOWN
|
||||
RC_DATA_FLAGS
|
||||
RC_DETECT_PHANTOM
|
||||
RC_GET_LINK_NUM
|
||||
RC_GET_NORMAL
|
||||
RC_GET_ROOT_KEY
|
||||
RC_MAX_HITS
|
||||
RC_REJECT_AGENTS
|
||||
RC_REJECT_LAND
|
||||
RC_REJECT_NONPHYSICAL
|
||||
RC_REJECT_PHYSICAL
|
||||
RC_REJECT_TYPES
|
||||
STATUS_BLOCK_GRAB_OBJECT
|
||||
|
||||
#Even more missing constants, thanks to Justin Clark Casey for pointing me into the right direction
|
||||
|
||||
CAMERA_FOCUS_OFFSET_X
|
||||
CAMERA_FOCUS_OFFSET_Y
|
||||
CAMERA_FOCUS_OFFSET_Z
|
||||
CAMERA_FOCUS_X
|
||||
CAMERA_FOCUS_Y
|
||||
CAMERA_FOCUS_Z
|
||||
CAMERA_POSITION_X
|
||||
CAMERA_POSITION_Y
|
||||
CAMERA_POSITION_Z
|
||||
CHANGED_ANIMATION
|
||||
CHANGED_REGION_RESTART
|
||||
DATA_SIM_RELEASE
|
||||
ESTATE_ACCESS_ALLOWED_AGENT_ADD
|
||||
ESTATE_ACCESS_ALLOWED_AGENT_REMOVE
|
||||
ESTATE_ACCESS_ALLOWED_GROUP_ADD
|
||||
ESTATE_ACCESS_ALLOWED_GROUP_REMOVE
|
||||
ESTATE_ACCESS_BANNED_AGENT_ADD
|
||||
ESTATE_ACCESS_BANNED_AGENT_REMOVE
|
||||
LIST_STAT_HARMONIC_MEAN
|
||||
PARCEL_DETAILS_CLAIMDATE
|
||||
PERMISSION_CHANGE_JOINTS
|
||||
PERMISSION_CHANGE_PERMISSIONS
|
||||
PERMISSION_RELEASE_OWNERSHIP
|
||||
PERMISSION_REMAP_CONTROLS
|
||||
VEHICLE_FLAG_LOCK_HOVER_HEIGHT
|
||||
VEHICLE_FLAG_LOCK_ROTATION
|
||||
VEHICLE_FLAG_NO_DEFLECTION
|
||||
VEHICLE_FLAG_NO_X
|
||||
VEHICLE_FLAG_NO_Y
|
||||
VEHICLE_FLAG_NO_Z
|
||||
VEHICLE_RANGE_BLOCK
|
||||
VEHICLE_ROLL_FRAME
|
||||
LSL_STATUS_BOUNDS_ERROR
|
||||
LSL_STATUS_INTERNAL_ERROR
|
||||
LSL_STATUS_MALFORMED_PARAMS
|
||||
LSL_STATUS_NOT_FOUND
|
||||
LSL_STATUS_NOT_SUPPORTED
|
||||
LSL_STATUS_OK
|
||||
LSL_STATUS_TYPE_MISMATCH
|
||||
LSL_STATUS_WHITELIST_FAILED
|
||||
|
||||
# string constants
|
||||
[word .1, .3, .5]
|
||||
NULL_KEY Indicates an empty key
|
||||
|
||||
@@ -5115,6 +5115,17 @@
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>EnableGestureSoundsSelf</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Play sounds from your gestures when EnableGestureSounds is false. (Useless otherewise)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>EnableMouselook</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
@@ -7234,6 +7245,39 @@
|
||||
<key>Value</key>
|
||||
<real>1.0</real>
|
||||
</map>
|
||||
<key>InventoryOutboxMaxFolderCount</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Maximum number of subfolders allowed in a listing in the merchant outbox.</string>
|
||||
<key>Persist</key>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>21</integer>
|
||||
</map>
|
||||
<key>InventoryOutboxMaxFolderDepth</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Maximum number of nested levels of subfolders allowed in a listing in the merchant outbox.</string>
|
||||
<key>Persist</key>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>4</integer>
|
||||
</map>
|
||||
<key>InventoryOutboxMaxItemCount</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Maximum number of items allowed in a listing in the merchant outbox.</string>
|
||||
<key>Persist</key>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>200</integer>
|
||||
</map>
|
||||
<key>InventorySortOrder</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
@@ -8174,7 +8218,7 @@
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>MemoryLogFrequency</key>
|
||||
<key>MemoryLogFrequency</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Seconds between display of Memory in log (0 for never)</string>
|
||||
@@ -8284,17 +8328,6 @@
|
||||
<key>Value</key>
|
||||
<real>0</real>
|
||||
</map>
|
||||
<key>MeshUploadTimeOut</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Maximum time in seconds for llcurl to execute a mesh uploading request</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>S32</string>
|
||||
<key>Value</key>
|
||||
<real>600</real>
|
||||
</map>
|
||||
<key>MeshUploadFakeErrors</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
@@ -8306,8 +8339,18 @@
|
||||
<key>Value</key>
|
||||
<real>0</real>
|
||||
</map>
|
||||
|
||||
<key>MigrateCacheDirectory</key>
|
||||
<key>MeshUploadTimeOut</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Maximum time in seconds for llcurl to execute a mesh uploading request</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>S32</string>
|
||||
<key>Value</key>
|
||||
<real>600</real>
|
||||
</map>
|
||||
<key>MigrateCacheDirectory</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Check for old version of disk cache to migrate to current location</string>
|
||||
@@ -9993,32 +10036,32 @@
|
||||
<key>RenderShadowNearDist</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Near clip plane of shadow camera (affects precision of depth shadows).</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Vector3</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>256</real>
|
||||
<real>256</real>
|
||||
<real>256</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>RenderShadowClipPlanes</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Near clip plane split distances for shadow map frusta.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Vector3</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>1.0</real>
|
||||
<real>12.0</real>
|
||||
<real>32.0</real>
|
||||
</array>
|
||||
<string>Near clip plane of shadow camera (affects precision of depth shadows).</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Vector3</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>256</real>
|
||||
<real>256</real>
|
||||
<real>256</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>RenderShadowClipPlanes</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Near clip plane split distances for shadow map frusta.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Vector3</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>1.0</real>
|
||||
<real>12.0</real>
|
||||
<real>32.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>RenderShadowSplitExponent</key>
|
||||
<map>
|
||||
@@ -10083,55 +10126,55 @@
|
||||
<key>Value</key>
|
||||
<real>0.5</real>
|
||||
</map>
|
||||
<key>RenderSSAOScale</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Scaling factor for the area to sample for occluders (pixels at 1 meter away, inversely varying with distance)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>500.0</real>
|
||||
</map>
|
||||
<key>RenderSSAOMaxScale</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Maximum screen radius for sampling (pixels)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>200</integer>
|
||||
</map>
|
||||
<key>RenderSSAOFactor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Occlusion sensitivity factor for ambient occlusion (larger is more)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.30</real>
|
||||
</map>
|
||||
<key>RenderSSAOEffect</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Multiplier for (1) value and (2) saturation (HSV definition), for areas which are totally occluded. Blends with original color for partly-occluded areas. (Third component is unused.)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Vector3</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.80</real>
|
||||
<real>1.00</real>
|
||||
<real>0.00</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>RenderBumpmapMinDistanceSquared</key>
|
||||
<key>RenderSSAOScale</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Scaling factor for the area to sample for occluders (pixels at 1 meter away, inversely varying with distance)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>500.0</real>
|
||||
</map>
|
||||
<key>RenderSSAOMaxScale</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Maximum screen radius for sampling (pixels)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>200</integer>
|
||||
</map>
|
||||
<key>RenderSSAOFactor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Occlusion sensitivity factor for ambient occlusion (larger is more)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.30</real>
|
||||
</map>
|
||||
<key>RenderSSAOEffect</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Multiplier for (1) value and (2) saturation (HSV definition), for areas which are totally occluded. Blends with original color for partly-occluded areas. (Third component is unused.)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Vector3</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.80</real>
|
||||
<real>1.00</real>
|
||||
<real>0.00</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>RenderBumpmapMinDistanceSquared</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Maximum distance at which to render bumpmapped primitives (distance in meters, squared)</string>
|
||||
@@ -10142,17 +10185,17 @@
|
||||
<key>Value</key>
|
||||
<real>100.0</real>
|
||||
</map>
|
||||
<key>RenderNormalMapScale</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Scaler applied to height map when generating normal maps</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>64</real>
|
||||
</map>
|
||||
<key>RenderNormalMapScale</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Scaler applied to height map when generating normal maps</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>64</real>
|
||||
</map>
|
||||
<key>RenderCubeMap</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
@@ -10230,29 +10273,29 @@
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RenderDelayCreation</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Throttle creation of drawables.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RenderDelayCreation</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Throttle creation of drawables.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
|
||||
<key>RenderAnimateRes</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Animate rezing prims.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RenderAnimateRes</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Animate rezing prims.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
|
||||
<key>RenderBakeSunlight</key>
|
||||
<map>
|
||||
@@ -10265,7 +10308,7 @@
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
|
||||
|
||||
<!--<key>RenderAnimateTrees</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
@@ -10314,27 +10357,27 @@
|
||||
</map>
|
||||
|
||||
<key>RenderDeferredAlphaSoften</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Scalar for softening alpha surfaces (for soft particles).</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.75</real>
|
||||
</map>
|
||||
<key>RenderDeferredNoise</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Noise scalar to hide banding in deferred render.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>4</real>
|
||||
</map>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Scalar for softening alpha surfaces (for soft particles).</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.75</real>
|
||||
</map>
|
||||
<key>RenderDeferredNoise</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Noise scalar to hide banding in deferred render.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>4</real>
|
||||
</map>
|
||||
<key>RenderDeferredSpotShadowBias</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
@@ -10380,7 +10423,6 @@
|
||||
<key>Value</key>
|
||||
<real>0.01</real>
|
||||
</map>
|
||||
|
||||
<key>RenderShadowBiasError</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
@@ -10602,14 +10644,14 @@
|
||||
<key>RenderDeferred</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Use deferred rendering pipeline.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<string>Use deferred rendering pipeline.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
|
||||
<key>RenderDeferredSun</key>
|
||||
<map>
|
||||
@@ -10661,25 +10703,25 @@
|
||||
|
||||
<key>RenderDeferredSunWash</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Amount local lights are washed out by sun.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.5</real>
|
||||
</map>
|
||||
<key>RenderShadowNoise</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Magnitude of noise on shadow samples.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>-0.0001</real>
|
||||
<key>Comment</key>
|
||||
<string>Amount local lights are washed out by sun.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.5</real>
|
||||
</map>
|
||||
<key>RenderShadowNoise</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Magnitude of noise on shadow samples.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>-0.0001</real>
|
||||
</map>
|
||||
<key>RenderShadowErrorCutoff</key>
|
||||
<map>
|
||||
@@ -10733,15 +10775,15 @@
|
||||
</map>
|
||||
<key>RenderShadowBlurSamples</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Number of samples to take for each pass of shadow blur (value range 1-16). Actual number of samples is value * 2 - 1.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<real>4</real>
|
||||
</map>
|
||||
<key>Comment</key>
|
||||
<string>Number of samples to take for each pass of shadow blur (value range 1-16). Actual number of samples is value * 2 - 1.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<real>4</real>
|
||||
</map>
|
||||
<key>RenderShadowBlurDistFactor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
@@ -10754,7 +10796,7 @@
|
||||
<real>0.1</real>
|
||||
</map>
|
||||
|
||||
<key>RenderDynamicLOD</key>
|
||||
<key>RenderDynamicLOD</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Dynamically adjust level of detail.</string>
|
||||
@@ -11511,28 +11553,28 @@
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RenderUseShaderLOD</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether we want to have different shaders for LOD</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>RenderUseShaderNearParticles</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether we want to use shaders on near particles</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RenderUseShaderLOD</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether we want to have different shaders for LOD</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>RenderUseShaderNearParticles</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether we want to use shaders on near particles</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RenderVBOEnable</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
@@ -11710,18 +11752,18 @@
|
||||
<key>Value</key>
|
||||
<integer>32</integer>
|
||||
</map>
|
||||
<key>RunBtnState</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string/>
|
||||
<key>Persist</key>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RunMultipleThreads</key>
|
||||
<key>RunBtnState</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string/>
|
||||
<key>Persist</key>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RunMultipleThreads</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>If TRUE keep background threads active during render</string>
|
||||
|
||||
@@ -6,15 +6,20 @@
|
||||
|
||||
## - Avoids using any OpenAL audio driver.
|
||||
#export LL_BAD_OPENAL_DRIVER=x
|
||||
## - Avoids using any FMOD Ex audio driver.
|
||||
#export LL_BAD_FMODEX_DRIVER=x
|
||||
## - Avoids using any FMOD audio driver.
|
||||
#export LL_BAD_FMOD_DRIVER=x
|
||||
|
||||
## - Avoids using the FMOD ESD audio driver.
|
||||
#export LL_BAD_FMOD_ESD=x
|
||||
## - Avoids using the FMOD OSS audio driver.
|
||||
#export LL_BAD_FMOD_OSS=x
|
||||
## - Avoids using the FMOD ALSA audio driver.
|
||||
## - Avoids using the FMOD Ex PulseAudio audio driver.
|
||||
#export LL_BAD_FMOD_PULSEAUDIO=x
|
||||
## - Avoids using the FMOD or FMOD Ex ALSA audio driver.
|
||||
#export LL_BAD_FMOD_ALSA=x
|
||||
## - Avoids using the FMOD or FMOD Ex OSS audio driver.
|
||||
#export LL_BAD_FMOD_OSS=x
|
||||
## - Avoids using the FMOD or FMOD Ex ESD audio driver.
|
||||
#export LL_BAD_FMOD_ESD=x
|
||||
|
||||
|
||||
## - Avoids the optional OpenGL extensions which have proven most problematic
|
||||
## on some hardware. Disabling this option may cause BETTER PERFORMANCE but
|
||||
|
||||
@@ -4001,7 +4001,7 @@ void LLAgent::sendAgentSetAppearance()
|
||||
|
||||
llinfos << "Avatar XML num VisualParams transmitted = " << transmitted_params << llendl;
|
||||
if(transmitted_params < 218) {
|
||||
LLNotificationsUtil::add("SGIncompleteAppearence");
|
||||
LLNotificationsUtil::add("SGIncompleteAppearance");
|
||||
}
|
||||
sendReliableMessage();
|
||||
}
|
||||
|
||||
@@ -1791,7 +1791,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
|
||||
(glow << 24);
|
||||
|
||||
U32 vec[4];
|
||||
vec[0] = vec[1] = vec[2] = vec[3] = glow32;
|
||||
std::fill_n(vec,4,glow32);
|
||||
|
||||
src.loadua((F32*) vec);
|
||||
|
||||
|
||||
@@ -178,6 +178,7 @@ class AIFilePicker;
|
||||
class LLInventoryFVBridgeBuilder
|
||||
{
|
||||
public:
|
||||
LLInventoryFVBridgeBuilder() {}
|
||||
virtual ~LLInventoryFVBridgeBuilder() {}
|
||||
virtual LLInvFVBridge* createBridge(LLAssetType::EType asset_type,
|
||||
LLAssetType::EType actual_asset_type,
|
||||
@@ -627,6 +628,7 @@ public:
|
||||
class LLRecentInventoryBridgeBuilder : public LLInventoryFVBridgeBuilder
|
||||
{
|
||||
public:
|
||||
LLRecentInventoryBridgeBuilder(): LLInventoryFVBridgeBuilder() {}
|
||||
// Overrides FolderBridge for Recent Inventory Panel.
|
||||
// It use base functionality for bridges other than FolderBridge.
|
||||
virtual LLInvFVBridge* createBridge(LLAssetType::EType asset_type,
|
||||
|
||||
@@ -1435,10 +1435,10 @@ bool idle_startup()
|
||||
{
|
||||
case LLUserAuth::E_OK:
|
||||
response = LLUserAuth::getInstance()->getResponse();
|
||||
login_response = response["login"];
|
||||
reason_response = response["reason"];
|
||||
message_response = response["message"];
|
||||
message_id = response["message_id"];
|
||||
login_response = response["login"].asString();
|
||||
reason_response = response["reason"].asString();
|
||||
message_response = response["message"].asString();
|
||||
message_id = response["message_id"].asString();
|
||||
|
||||
if(login_response == "true")
|
||||
{
|
||||
@@ -4293,45 +4293,45 @@ bool process_login_success_response(std::string& password)
|
||||
|
||||
|
||||
// Override grid info with anything sent in the login response
|
||||
std::string tmp = response["gridname"];
|
||||
std::string tmp = response["gridname"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setGridName(tmp);
|
||||
tmp = response["loginuri"];
|
||||
tmp = response["loginuri"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setLoginUri(tmp);
|
||||
tmp = response["welcome"];
|
||||
tmp = response["welcome"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setLoginPage(tmp);
|
||||
tmp = response["loginpage"];
|
||||
tmp = response["loginpage"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setLoginPage(tmp);
|
||||
tmp = response["economy"];
|
||||
tmp = response["economy"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setHelperUri(tmp);
|
||||
tmp = response["helperuri"];
|
||||
tmp = response["helperuri"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setHelperUri(tmp);
|
||||
tmp = response["about"];
|
||||
tmp = response["about"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setWebSite(tmp);
|
||||
tmp = response["website"];
|
||||
tmp = response["website"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setWebSite(tmp);
|
||||
tmp = response["help"];
|
||||
tmp = response["help"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setSupportUrl(tmp);
|
||||
tmp = response["support"];
|
||||
tmp = response["support"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setSupportUrl(tmp);
|
||||
tmp = response["register"];
|
||||
tmp = response["register"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setRegisterUrl(tmp);
|
||||
tmp = response["account"];
|
||||
tmp = response["account"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setRegisterUrl(tmp);
|
||||
tmp = response["password"];
|
||||
tmp = response["password"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setPasswordUrl(tmp);
|
||||
tmp = response["search"];
|
||||
tmp = response["search"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setSearchUrl(tmp);
|
||||
tmp = response["currency"];
|
||||
tmp = response["currency"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setCurrencySymbol(tmp);
|
||||
tmp = response["real_currency"];
|
||||
tmp = response["real_currency"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setRealCurrencySymbol(tmp);
|
||||
tmp = response["directory_fee"];
|
||||
tmp = response["directory_fee"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setDirectoryFee(atoi(tmp.c_str()));
|
||||
tmp = response["max_groups"];
|
||||
tmp = response["max_groups"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setMaxAgentGroups(atoi(tmp.c_str()));
|
||||
tmp = response["max-agent-groups"];
|
||||
tmp = response["max-agent-groups"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setMaxAgentGroups(atoi(tmp.c_str()));
|
||||
tmp = response["VoiceConnector"];
|
||||
tmp = response["VoiceConnector"].asString();
|
||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setVoiceConnector(tmp);
|
||||
gHippoGridManager->saveFile();
|
||||
gHippoLimits->setLimits();
|
||||
@@ -4351,4 +4351,4 @@ bool process_login_success_response(std::string& password)
|
||||
success = true;
|
||||
}
|
||||
return success;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,8 +236,8 @@ void LLSurfacePatch::eval(const U32 x, const U32 y, const U32 stride, LLVector3
|
||||
const F32 xyScaleInv = (1.f / xyScale)*(0.2222222222f);
|
||||
|
||||
F32 vec[3] = {
|
||||
fmod((F32)(mOriginGlobal.mdV[0] + x)*xyScaleInv, 256.f),
|
||||
fmod((F32)(mOriginGlobal.mdV[1] + y)*xyScaleInv, 256.f),
|
||||
(F32)fmod((mOriginGlobal.mdV[0] + x)*xyScaleInv, 256.f),
|
||||
(F32)fmod((mOriginGlobal.mdV[1] + y)*xyScaleInv, 256.f),
|
||||
0.f
|
||||
};
|
||||
F32 rand_val = llclamp(noise2(vec)* 0.75f + 0.5f, 0.f, 1.f);
|
||||
|
||||
@@ -9064,7 +9064,7 @@ class LLEditTakeOff : public view_listener_t
|
||||
&& (gAgentWearables.getWearableCount(type) > 0))
|
||||
{
|
||||
// MULTI-WEARABLES: assuming user wanted to remove top shirt.
|
||||
U32 wearable_index = gAgentWearables.getWearableCount(type) - 1;
|
||||
S32 wearable_index = gAgentWearables.getWearableCount(type) - 1;
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-06-09 (RLVa-1.2.0g) | Added: RLVa-1.2.0g
|
||||
if ( (rlv_handler_t::isEnabled()) && (gRlvWearableLocks.hasLockedWearable(type)) )
|
||||
|
||||
@@ -4873,7 +4873,9 @@ void process_sound_trigger(LLMessageSystem *msg, void **)
|
||||
// Don't play sounds from gestures if they are not enabled.
|
||||
if (object_id == owner_id && !gSavedSettings.getBOOL("EnableGestureSounds"))
|
||||
{
|
||||
return;
|
||||
// Don't mute own gestures, if they're not muted.
|
||||
if(owner_id != gAgent.getID() || !gSavedSettings.getBOOL("EnableGestureSoundsSelf"))
|
||||
return;
|
||||
}
|
||||
|
||||
// <edit>
|
||||
|
||||
@@ -1107,7 +1107,7 @@ public:
|
||||
}
|
||||
else if( i != you_index)
|
||||
{
|
||||
U32 loc = x << 16 | y << 8 | z; loc = loc;
|
||||
//U32 loc = x << 16 | y << 8 | z; //Unused variable, why did this exist?
|
||||
U32 pos = 0x0;
|
||||
pos |= x;
|
||||
pos <<= 8;
|
||||
|
||||
@@ -89,7 +89,7 @@ const StatAttributes STAT_INFO[LLViewerStats::ST_COUNT] =
|
||||
// ST_VERSION
|
||||
StatAttributes("Version", TRUE, FALSE),
|
||||
// ST_AVATAR_EDIT_SECONDS
|
||||
StatAttributes("Seconds in Edit Appearence", FALSE, TRUE),
|
||||
StatAttributes("Seconds in Edit Appearance", FALSE, TRUE),
|
||||
// ST_TOOLBOX_SECONDS
|
||||
StatAttributes("Seconds using Toolbox", FALSE, TRUE),
|
||||
// ST_CHAT_COUNT
|
||||
|
||||
@@ -842,7 +842,7 @@ void SHClientTagMgr::updateAvatarTag(LLVOAvatar* pAvatar)
|
||||
std::map<LLUUID, LLSD>::iterator it = mAvatarTags.find(id);
|
||||
|
||||
LLSD new_tag = generateClientTag(pAvatar);
|
||||
LLSD& old_tag = (it != mAvatarTags.end()) ? it->second : LLSD();
|
||||
LLSD old_tag = (it != mAvatarTags.end()) ? it->second : LLSD();
|
||||
|
||||
bool dirty = old_tag.size() != new_tag.size() || !llsd_equals(new_tag,old_tag);
|
||||
if(dirty)
|
||||
|
||||
@@ -469,7 +469,7 @@ void LLXMLRPCTransaction::Impl::setCurlStatus(CURLcode code)
|
||||
case CURLE_SSL_CACERT:
|
||||
case CURLE_SSL_CONNECT_ERROR:
|
||||
message =
|
||||
"Often this means that your computer\'s clock is set incorrectly.\n"
|
||||
"Often this means that your computer's clock is set incorrectly.\n"
|
||||
"Please go to Control Panels and make sure the time and date\n"
|
||||
"are set correctly.\n"
|
||||
"\n"
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
follows="top|left"
|
||||
font="SansSerif"
|
||||
height="343"
|
||||
bg_readonly_color="Transparent"
|
||||
bg_readonly_color="transparent"
|
||||
left="1"
|
||||
max_length="65536"
|
||||
name="support_editor"
|
||||
@@ -49,7 +49,7 @@
|
||||
<text_editor
|
||||
enabled="false"
|
||||
follows="left|top"
|
||||
bg_readonly_color="Transparent"
|
||||
bg_readonly_color="transparent"
|
||||
left="1"
|
||||
text_color="LtGray"
|
||||
max_length="65536"
|
||||
|
||||
@@ -911,7 +911,7 @@ Only large parcels can be listed in search.
|
||||
height="16"
|
||||
left="10"
|
||||
length="1"
|
||||
name="at URL:"
|
||||
name="at URL2:"
|
||||
type="string"
|
||||
width="65">
|
||||
Current URL:
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
<button height="20" bottom_delta="-28" label="Save" font="SansSerif" left="20" name="save_btn" tool_tip="Save your new Display Name" width="113" />
|
||||
<button height="20" bottom_delta="0" label="Reset" font="SansSerif" left_delta="123" name="reset_btn" tool_tip="Make Display Name the same as Username" width="113" />
|
||||
<button height="20" bottom_delta="0" label="Cancel" font="SansSerif" left_delta="123" name="cancel_btn" tool_tip="Cancel and close this Dialog" width="113" />
|
||||
<text left="20" bottom_delta="-25" width="360" height="18" font="SansSerif" name="name_confirm_label">
|
||||
<text left="20" bottom_delta="-25" width="360" height="18" font="SansSerif" name="name_confirm_label2">
|
||||
The name you give your avatar is called yours Display Name.
|
||||
</text>
|
||||
<text left="20" bottom_delta="-18" width="360" height="18" font="SansSerif" name="name_confirm_label">
|
||||
<text left="20" bottom_delta="-18" width="360" height="18" font="SansSerif" name="name_confirm_label3">
|
||||
You can change it once a week.
|
||||
</text>
|
||||
</floater>
|
||||
|
||||
@@ -538,6 +538,20 @@ Add this Ability to '[ROLE_NAME]'?
|
||||
yestext="Yes"/>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="alertmodal.tga"
|
||||
name="AttachmentDrop"
|
||||
type="alertmodal">
|
||||
You are about to drop your attachment.
|
||||
Are you sure you want to continue?
|
||||
<tag>confirm</tag>
|
||||
<usetemplate
|
||||
ignoretext="Confirm before dropping attachments"
|
||||
name="okcancelignore"
|
||||
notext="No"
|
||||
yestext="Yes"/>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="alertmodal.tga"
|
||||
name="ClickPublishHelpLand"
|
||||
@@ -7214,9 +7228,9 @@ Click 'Wear' to attach the Physics Wearable, or click 'Cancel' if you wish to ma
|
||||
|
||||
<notification
|
||||
icon="alert.tga"
|
||||
name="SGIncompleteAppearence"
|
||||
name="SGIncompleteAppearance"
|
||||
type="alert">
|
||||
Sending incomplete appearence. You may appear to others as a cloud.
|
||||
Sending incomplete appearance. You may appear to others as a cloud.
|
||||
|
||||
Your shape, skin, hair or eyes might be defect.
|
||||
<usetemplate
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<view_border bevel_style="none" border_thickness="1" bottom_delta="0" follows="top|left" height="75"
|
||||
left="235" name="CmdDivisor" width="0"/>
|
||||
-->
|
||||
<text bottom="-15" left="250" name="objects_link_text_box" width="300">Chat:</text>
|
||||
<text bottom="-15" left="250" name="objects_link_text_box2" width="300">Chat:</text>
|
||||
<check_box bottom_delta="-25" left_delta="-5" follows="left|top" control_name="PlayTypingSound" initial_value="true"
|
||||
label="Play the typing sound for local chat" tool_tip="Silences the chatting type sound, making it quieter for things like performances." name="play_typing_sound_check"/>
|
||||
<check_box bottom_delta="-20" follows="left|top" control_name="HideNotificationsInChat" initial_value="false"
|
||||
@@ -25,7 +25,7 @@
|
||||
label="Allow MU pose method." tool_tip="Allows the use of both /me and : to perform emotes." name="allow_mu_pose_check"/>
|
||||
<check_box bottom_delta="-20" follows="left|top" control_name="AscentAutoCloseOOC"
|
||||
label="Auto-close OOC comments." tool_tip="Will automatically append '))' to any message starting with '((', or visa versa." name="close_ooc_check"/>
|
||||
<text bottom_delta="-15" follows="left|top" name="objects_link_text_box">Show links on chatting object names in chat history for:</text>
|
||||
<text bottom_delta="-15" follows="left|top" name="objects_link_text_box3">Show links on chatting object names in chat history for:</text>
|
||||
<radio_group bottom_delta="-26" control_name="LinksForChattingObjects" tool_tip="Enables a link to show you the owner of the speaking object."
|
||||
follows="top" height="20" left="20" name="objects_link" width="350">
|
||||
<radio_item bottom_delta="0" left_delta="5" name="no_object" width="48">No object</radio_item>
|
||||
@@ -58,7 +58,7 @@
|
||||
<check_box bottom_delta="-20" follows="left|top" initial_value="false" label="Send an item along with the response" name="AscentInstantMessageResponseItem" tool_tip="You can include an inventory item to send along with your auto response by dragging it from your inventory to the location below"/>
|
||||
<text bottom_delta="120" left_delta="245" follows="left|top" height="18" name="text_box1">Response Text:</text>
|
||||
<text_editor bottom_delta="-110" follows="left|top" height="110" max_length="1100" name="im_response" width="230" word_wrap="true" spell_check="true"/>
|
||||
<text bottom_delta="-25" follows="left|top" height="18" name="text_box1">
|
||||
<text bottom_delta="-25" follows="left|top" height="18" name="text_box2">
|
||||
#f for user's first name, #l for last name,
|
||||
#t for timestamp, #r for SLURL to you,
|
||||
#i for your idle time. (e.g. "5 mins")
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<text bottom_delta="-26" follows="top" height="10" left="12" name="socks5_host_label">Socks 5 Host:</text>
|
||||
<line_editor bottom_delta="-6" follows="top" font="SansSerif" height="20" left="90" name="socks5_proxy_host" tool_tip="The name or IP address of the SOCKS5 proxy you would like to use" width="311"/>
|
||||
<spinner bottom_delta="-30" decimal_digits="0" follows="top" height="16" increment="1" initial_val="80" label="Port Number:" label_width="75" max_val="65535" min_val="0" name="socks5_proxy_port" width="140"/>
|
||||
<text bottom_delta="-20" follows="top" height="10" left="12" name="socks5_auth_label">Socks5 Authentication:</text>
|
||||
<text bottom_delta="-20" follows="top" height="10" left="12" name="socks5_auth_label2">Socks5 Authentication:</text>
|
||||
<radio_group bottom_delta="-6" draw_border="false" follows="top" height="20" name="socks5_auth" width="420">
|
||||
<radio_item bottom="0" height="20" left_delta="80" name="None" tool_tip="No authentication">None</radio_item>
|
||||
<radio_item bottom="0" height="20" left_delta="50" name="UserPass" tool_tip="Username / Password authentication">Username/Password</radio_item>
|
||||
|
||||
@@ -2527,4 +2527,144 @@ Sets value of param property for plugin module.
|
||||
(OpenSim only.)
|
||||
</string>
|
||||
<string name="Unnamed">(Unnamed)</string>
|
||||
<string name="LSLTipText_llGetMassMKS">
|
||||
float llGetMassMKS()
|
||||
Returns a float that is the mass (in
|
||||
Kilograms) of the object that the
|
||||
script is attached to.
|
||||
</string>
|
||||
<string name="LSLTipText_llGetMemoryLimit">
|
||||
integer llGetMemoryLimit()
|
||||
Get the maximum memory a script can use.
|
||||
</string>
|
||||
<string name="LSLTipText_llGetParcelMusicURL">
|
||||
string llGetParcelMusicURL()
|
||||
Returns a string containing the parcel streaming audio URL.
|
||||
The object owner must also be the land owner.
|
||||
</string>
|
||||
<string name="LSLTipText_llGetPhysicsMaterial">
|
||||
list llGetPhysicsMaterial()
|
||||
Used to get the physical characteristics of an object.
|
||||
Returns a list in the form [ float gravity_multiplier, float restitution, float friction, float density ]
|
||||
</string>
|
||||
<string name="LSLTipText_llManageEstateAccess">
|
||||
integer llManageEstateAccess(integer action, key avatar)
|
||||
Used to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.
|
||||
</string>
|
||||
<string name="LSLTipText_llSetAngularVelocity">
|
||||
llSetAngularVelocity(vector force, integer local)
|
||||
Applies rotational velocity to object.
|
||||
</string>
|
||||
<string name="LSLTipText_llSetKeyframedMotion">
|
||||
llSetKeyframedMotion(list keyframes, list options)
|
||||
Specify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between keyframes by the simulator.
|
||||
</string>
|
||||
<string name="LSLTipText_llSetPhysicsMaterial">
|
||||
llSetPhysicsMaterial(integer material, float gravity,
|
||||
float restitution, float friction, float density)
|
||||
Used for setting the physical characteristics of an object.
|
||||
</string>
|
||||
<string name="LSLTipText_llSetRegionPos">
|
||||
integer llSetRegionPos(vector position)
|
||||
Tries to move the entire object so that the root prim is within 0.1m of position
|
||||
</string>
|
||||
<string name="LSLTipText_llSetVelocity">
|
||||
llSetVelocity(vector force, integer local)
|
||||
Applies velocity to an object
|
||||
</string>
|
||||
<string name="LSLTipText_llTransferLindenDollars">
|
||||
key llTransferLindenDollars(key destination, integer amount)
|
||||
Transfer amount of L$ money from script owner to destination avatar.
|
||||
</string>
|
||||
|
||||
<!-- Pathfinder functions. Current state: alpha -->
|
||||
<string name="LSLTipText_llCreateCharacter">
|
||||
llCreateCharacter(list options)
|
||||
Creates a pathfinding entity, known as a "character" from the object containing the script.
|
||||
</string>
|
||||
<string name="LSLTipText_llDeleteCharacter">
|
||||
llDeleteCharacter()
|
||||
Convert the current linkset back to a standard object, removing all pathfinding properties.
|
||||
</string>
|
||||
<string name="LSLTipText_llEvade">
|
||||
llEvade(key target, list options)
|
||||
Characters will try to hide from their pursuers if there is a good hiding spot along their fleeing path.
|
||||
</string>
|
||||
<string name="LSLTipText_llExecCharacterCmd">
|
||||
llExecCharacterCmd(integer command, list options)
|
||||
Send a command to the pathing system.
|
||||
</string>
|
||||
<string name="LSLTipText_llGetClosestNavPoint">
|
||||
list llGetClosestNavPoint(vector point, list options)
|
||||
Finds the closest navpoint and returns a list with a single vector if succesful. Returns empty list when no navpoints found.
|
||||
</string>
|
||||
<string name="LSLTipText_llFleeFrom">
|
||||
llFleeFrom(vector source, float distance, list options)
|
||||
Tells an object to keep away from a defined position in the region or adjacent regions.
|
||||
</string>
|
||||
<string name="LSLTipText_llNavigateTo">
|
||||
llNavigateTo(vector pos, list options)
|
||||
Tells an object to travel to a defined position in the region or adjacent regions.
|
||||
</string>
|
||||
<string name="LSLTipText_llPatrolPoints">
|
||||
llPatrolPoints(list patrolPoints, list options)
|
||||
Sets the object patrolling between the points specified in patrolPoints.
|
||||
</string>
|
||||
<string name="LSLTipText_llPursue">
|
||||
llPursue(key target, list options)
|
||||
Causes the object to pursue a target.
|
||||
</string>
|
||||
<string name="LSLTipText_llUpdateCharacter">
|
||||
llUpdateCharacter(list options)
|
||||
Updates settings for a character.
|
||||
</string>
|
||||
<string name="LSLTipText_llWanderWithin">
|
||||
llWanderWithin(vector origin, float dist, list options)
|
||||
Sets a character to wander about a central spot within a specified radius.
|
||||
</string>
|
||||
<string name="LSLTipText_osIsNpc">
|
||||
integer osIsNpc(key npc)
|
||||
Returns TRUE if the given key is an NPC, false otherwise.
|
||||
(OpenSim only.)
|
||||
</string>
|
||||
<string name="LSLTipText_osNpcGetOwner">
|
||||
key osNpcGetOwner(key npc)
|
||||
Return the owner key of the given NPC. If the NPC is unowned or the input key does not belong to an NPC then it returns NULL_KEY.
|
||||
(OpenSim only.)
|
||||
</string>
|
||||
<string name="LSLTipText_osGetGridCustom">
|
||||
string osGetGridCustom(string key)
|
||||
Reads configuration strings from the [GridInfo] setion in OpenSim.ini.
|
||||
(OpenSim only.)
|
||||
</string>
|
||||
<string name="LSLTipText_osGetGridHomeURI">
|
||||
string osGetGridHomeURI()
|
||||
Returns the hypergrid URI of the grid where the user logged in.
|
||||
(OpenSim only.)
|
||||
</string>
|
||||
<string name="LSLTipText_osNpcPlayAnimation">
|
||||
osNpcPlayAnimation(key npc, string animation)
|
||||
Get an NPC to play an animation. The animation can either be a key or the name of an animation in the same object as the script.
|
||||
(OpenSim only.)
|
||||
</string>
|
||||
<string name="LSLTipText_osNpcSit">
|
||||
osNpcSit(key npc, key target, integer options)
|
||||
Sit an NPC on a prim target. No options have been implemented yet, so always input 0.
|
||||
(OpenSim only.)
|
||||
</string>
|
||||
<string name="LSLTipText_osNpcStand">
|
||||
osNpcStand(key npc)
|
||||
Make an NPC stand up.
|
||||
(OpenSim only.)
|
||||
</string>
|
||||
<string name="LSLTipText_osNpcStopAnimation">
|
||||
osNpcStopAnimation(key npc, string animation)
|
||||
Get an NPC to stop playing an animation. The animation can either be a key or the name of an animation in the same inventory as the script.
|
||||
(OpenSim only.)
|
||||
</string>
|
||||
<string name="LSLTipText_osSetRot">
|
||||
osSetRot(key target, quaternion rotation)
|
||||
Rotates an object or avatar.
|
||||
(OpenSim only.)
|
||||
</string>
|
||||
</strings>
|
||||
|
||||
@@ -40,6 +40,9 @@
|
||||
|
||||
#include "volume_catcher.h"
|
||||
|
||||
#ifndef LL_WINDOWS
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
extern "C" {
|
||||
#include <glib.h>
|
||||
|
||||
Reference in New Issue
Block a user