COA stuff rolled into gSavedSettings.
Added common script<->client command junk.
This commit is contained in:
@@ -9,11 +9,11 @@ include(Variables)
|
||||
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -DLL_DEBUG=1")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE
|
||||
"-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=1 -DNDEBUG")
|
||||
"-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=1 -DNDEBUG -DSHY_MOD=1")
|
||||
set(CMAKE_CXX_FLAGS_RELEASESSE2
|
||||
"-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=1 -DNDEBUG")
|
||||
"-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=1 -DNDEBUG -DSHY_MOD=1")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
"-DLL_RELEASE=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=0 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1")
|
||||
"-DLL_RELEASE=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=0 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1 -DSHY_MOD=1")
|
||||
|
||||
|
||||
# Don't bother with a MinSizeRel build.
|
||||
|
||||
@@ -59,6 +59,26 @@
|
||||
//this defines the current version of the settings file
|
||||
const S32 CURRENT_VERSION = 101;
|
||||
|
||||
//Currently global. Would be better in LLControlGroup... except that that requires LLControlVars to know their parent group.
|
||||
//Could also pass the setting to each COA var too.. but that's not much better.
|
||||
//Can't use llcachedcontrol as an alternative as that drags in LLCachedControl constructors that refer to gSavedSettings.. which'll break
|
||||
// the crashlogger which also includes llxml.lib (unresolved externals).
|
||||
//So, a global it is!
|
||||
bool gCOAEnabled = false;
|
||||
|
||||
inline LLControlVariable *LLControlVariable::getCOAActive()
|
||||
{
|
||||
//if no coa connection, return 'this'
|
||||
//if per account is ON and this IS a parent, return child var
|
||||
//if per account is ON and this IS NOT a parent, return 'this'
|
||||
//if per account is OFF and this IS NOT a parent, return parent var
|
||||
//if per account is OFF and this IS a parent, return 'this'
|
||||
if(getCOAConnection() && gCOAEnabled == isCOAParent())
|
||||
return getCOAConnection();
|
||||
else
|
||||
return this;
|
||||
}
|
||||
|
||||
bool LLControlVariable::llsd_compare(const LLSD& a, const LLSD & b)
|
||||
{
|
||||
bool result = false;
|
||||
@@ -102,12 +122,16 @@ bool LLControlVariable::llsd_compare(const LLSD& a, const LLSD & b)
|
||||
|
||||
LLControlVariable::LLControlVariable(const std::string& name, eControlType type,
|
||||
LLSD initial, const std::string& comment,
|
||||
bool persist, bool hidefromsettingseditor)
|
||||
bool persist, bool hidefromsettingseditor, bool IsCOA)
|
||||
: mName(name),
|
||||
mComment(comment),
|
||||
mType(type),
|
||||
mPersist(persist),
|
||||
mHideFromSettingsEditor(hidefromsettingseditor)
|
||||
mHideFromSettingsEditor(hidefromsettingseditor),
|
||||
mSignal(new signal_t),
|
||||
mIsCOA(IsCOA),
|
||||
mIsCOAParent(false),
|
||||
mCOAConnectedVar(NULL)
|
||||
{
|
||||
if (mPersist && mComment.empty())
|
||||
{
|
||||
@@ -188,7 +212,8 @@ void LLControlVariable::setValue(const LLSD& value, bool saved_value)
|
||||
|
||||
if(value_changed)
|
||||
{
|
||||
mSignal(storable_value);
|
||||
if(getCOAActive() == this)
|
||||
(*mSignal)(storable_value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,6 +230,7 @@ void LLControlVariable::setDefaultValue(const LLSD& value)
|
||||
mValues[0] = comparable_value;
|
||||
if(value_changed)
|
||||
{
|
||||
if(getCOAActive() == this)
|
||||
firePropertyChanged();
|
||||
}
|
||||
}
|
||||
@@ -235,6 +261,7 @@ void LLControlVariable::resetToDefault(bool fire_signal)
|
||||
|
||||
if(fire_signal)
|
||||
{
|
||||
if(getCOAActive() == this)
|
||||
firePropertyChanged();
|
||||
}
|
||||
}
|
||||
@@ -276,7 +303,13 @@ LLPointer<LLControlVariable> LLControlGroup::getControl(const std::string& name)
|
||||
gSettingsCallMap.push_back(std::pair<std::string, U32>(name.c_str(),1));
|
||||
}
|
||||
#endif //PROF_CTRL_CALLS
|
||||
return iter == mNameTable.end() ? LLPointer<LLControlVariable>() : iter->second;
|
||||
//return iter == mNameTable.end() ? LLPointer<LLControlVariable>() : iter->second;
|
||||
|
||||
LLControlVariable *pFoundVar = (iter != mNameTable.end()) ? iter->second : NULL;
|
||||
if(pFoundVar)
|
||||
return pFoundVar->getCOAActive();
|
||||
else
|
||||
return LLPointer<LLControlVariable>();
|
||||
}
|
||||
|
||||
|
||||
@@ -322,7 +355,7 @@ std::string LLControlGroup::typeEnumToString(eControlType typeenum)
|
||||
return mTypeString[typeenum];
|
||||
}
|
||||
|
||||
BOOL LLControlGroup::declareControl(const std::string& name, eControlType type, const LLSD initial_val, const std::string& comment, BOOL persist, BOOL hidefromsettingseditor)
|
||||
BOOL LLControlGroup::declareControl(const std::string& name, eControlType type, const LLSD initial_val, const std::string& comment, BOOL persist, BOOL hidefromsettingseditor, bool IsCOA)
|
||||
{
|
||||
LLControlVariable* existing_control = getControl(name);
|
||||
if (existing_control)
|
||||
@@ -335,6 +368,7 @@ BOOL LLControlGroup::declareControl(const std::string& name, eControlType type,
|
||||
LLSD cur_value = existing_control->getValue(); // get the current value
|
||||
existing_control->setDefaultValue(initial_val); // set the default to the declared value
|
||||
existing_control->setValue(cur_value); // now set to the loaded value
|
||||
existing_control->setIsCOA(IsCOA);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -345,7 +379,7 @@ BOOL LLControlGroup::declareControl(const std::string& name, eControlType type,
|
||||
}
|
||||
|
||||
// if not, create the control and add it to the name table
|
||||
LLControlVariable* control = new LLControlVariable(name, type, initial_val, comment, persist, hidefromsettingseditor);
|
||||
LLControlVariable* control = new LLControlVariable(name, type, initial_val, comment, persist, hidefromsettingseditor, IsCOA);
|
||||
mNameTable[name] = control;
|
||||
return TRUE;
|
||||
}
|
||||
@@ -1061,6 +1095,9 @@ U32 LLControlGroup::saveToFile(const std::string& filename, BOOL nondefault_only
|
||||
|
||||
U32 LLControlGroup::loadFromFile(const std::string& filename, bool set_default_values)
|
||||
{
|
||||
if(mIncludedFiles.find(filename) != mIncludedFiles.end())
|
||||
return 0; //Already included this file.
|
||||
|
||||
std::string name;
|
||||
LLSD settings;
|
||||
LLSD control_map;
|
||||
@@ -1089,6 +1126,24 @@ U32 LLControlGroup::loadFromFile(const std::string& filename, bool set_default_v
|
||||
name = (*itr).first;
|
||||
control_map = (*itr).second;
|
||||
|
||||
if(name == "Include")
|
||||
{
|
||||
if(control_map.isArray())
|
||||
{
|
||||
#if LL_WINDOWS
|
||||
size_t pos = filename.find_last_of("\\");
|
||||
#else
|
||||
size_t pos = filename.find_last_of("/");
|
||||
#endif
|
||||
if(pos!=std::string::npos)
|
||||
{
|
||||
const std::string dir = filename.substr(0,++pos);
|
||||
for(LLSD::array_const_iterator array_itr = control_map.beginArray(); array_itr != control_map.endArray(); ++array_itr)
|
||||
validitems+=loadFromFile(dir+(*array_itr).asString(),set_default_values);
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if(control_map.has("Persist"))
|
||||
{
|
||||
persist = control_map["Persist"].asInteger();
|
||||
@@ -1139,13 +1194,16 @@ U32 LLControlGroup::loadFromFile(const std::string& filename, bool set_default_v
|
||||
}
|
||||
else
|
||||
{
|
||||
bool IsCOA = control_map.has("IsCOA") && !!control_map["IsCOA"].asInteger();
|
||||
declareControl(name,
|
||||
typeStringToEnum(control_map["Type"].asString()),
|
||||
control_map["Value"],
|
||||
control_map["Comment"].asString(),
|
||||
persist,
|
||||
hidefromsettingseditor
|
||||
hidefromsettingseditor,
|
||||
IsCOA
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
++validitems;
|
||||
@@ -1175,6 +1233,53 @@ void LLControlGroup::applyToAll(ApplyFunctor* func)
|
||||
}
|
||||
}
|
||||
|
||||
void LLControlGroup::connectCOAVars(LLControlGroup &OtherGroup)
|
||||
{
|
||||
LLControlVariable *pCOAVar = NULL;
|
||||
for (ctrl_name_table_t::iterator iter = mNameTable.begin();
|
||||
iter != mNameTable.end(); iter++)
|
||||
{
|
||||
if(iter->second->isCOA())
|
||||
{
|
||||
LLControlVariable *pParent = iter->second;
|
||||
LLControlVariable *pChild = OtherGroup.getControl(pParent->getName());
|
||||
if(!pChild)
|
||||
{
|
||||
OtherGroup.declareControl(
|
||||
pParent->getName(),
|
||||
pParent->type(),
|
||||
pParent->getDefault(),
|
||||
pParent->getComment(),
|
||||
pParent->isPersisted(),
|
||||
true);
|
||||
|
||||
pChild = OtherGroup.getControl(pParent->getName());
|
||||
}
|
||||
if(pChild)
|
||||
{
|
||||
pParent->setCOAConnect(pChild,true);
|
||||
pChild->setCOAConnect(pParent,false);
|
||||
}
|
||||
}
|
||||
else if(iter->second->getName() == "AscentStoreSettingsPerAccount")
|
||||
pCOAVar = iter->second;
|
||||
}
|
||||
if(pCOAVar)
|
||||
{
|
||||
pCOAVar->getSignal()->connect(boost::bind(&LLControlGroup::handleCOASettingChange, this, _1));
|
||||
pCOAVar->firePropertyChanged();
|
||||
}
|
||||
}
|
||||
void LLControlGroup::updateCOASetting(bool coa_enabled)
|
||||
{
|
||||
for (ctrl_name_table_t::iterator iter = mNameTable.begin();
|
||||
iter != mNameTable.end(); iter++)
|
||||
{
|
||||
if(iter->second->getCOAConnection())
|
||||
iter->second->getCOAActive()->firePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
// First-use
|
||||
|
||||
@@ -1224,6 +1329,12 @@ void LLControlGroup::resetWarnings()
|
||||
}
|
||||
}
|
||||
|
||||
bool LLControlGroup::handleCOASettingChange(const LLSD& newvalue)
|
||||
{
|
||||
gCOAEnabled = !!newvalue.asInteger(); //TODO. De-globalize this.
|
||||
updateCOASetting(gCOAEnabled);
|
||||
return true;
|
||||
}
|
||||
//============================================================================
|
||||
|
||||
#ifdef TEST_HARNESS
|
||||
|
||||
@@ -72,7 +72,7 @@ const BOOL NO_PERSIST = FALSE;
|
||||
// Saved at end of session
|
||||
class LLControlGroup; //Defined further down
|
||||
extern LLControlGroup gSavedSettings; //Default control group used in LLCachedControl
|
||||
extern LLControlGroup *gCOASavedSettings; //Used in LLCachedCOAControl
|
||||
extern LLControlGroup gSavedPerAccountSettings; //For ease
|
||||
|
||||
typedef enum e_control_type
|
||||
{
|
||||
@@ -104,12 +104,16 @@ private:
|
||||
bool mHideFromSettingsEditor;
|
||||
std::vector<LLSD> mValues;
|
||||
|
||||
signal_t mSignal;
|
||||
|
||||
boost::shared_ptr<signal_t> mSignal; //Signals are non-copyable. Therefore, using a pointer so vars can 'share' signals for COA
|
||||
|
||||
//COA stuff:
|
||||
bool mIsCOA; //To have COA connection set.
|
||||
bool mIsCOAParent; //if true, use if settingsperaccount is false.
|
||||
LLControlVariable *mCOAConnectedVar;//Because the two vars refer to eachother, LLPointer would be a circular refrence..
|
||||
public:
|
||||
LLControlVariable(const std::string& name, eControlType type,
|
||||
LLSD initial, const std::string& comment,
|
||||
bool persist = true, bool hidefromsettingseditor = false);
|
||||
bool persist = true, bool hidefromsettingseditor = false, bool IsCOA = false);
|
||||
|
||||
virtual ~LLControlVariable();
|
||||
|
||||
@@ -121,7 +125,7 @@ public:
|
||||
|
||||
void resetToDefault(bool fire_signal = false);
|
||||
|
||||
signal_t* getSignal() { return &mSignal; }
|
||||
signal_t* getSignal() { return mSignal.get(); }
|
||||
|
||||
bool isDefault() { return (mValues.size() == 1); }
|
||||
bool isSaveValueDefault();
|
||||
@@ -141,7 +145,21 @@ public:
|
||||
|
||||
void firePropertyChanged()
|
||||
{
|
||||
mSignal(mValues.back());
|
||||
(*mSignal)(mValues.back());
|
||||
}
|
||||
|
||||
//COA stuff
|
||||
bool isCOA() const { return mIsCOA; }
|
||||
bool isCOAParent() const { return mIsCOAParent; }
|
||||
LLControlVariable *getCOAConnection() const { return mCOAConnectedVar; }
|
||||
LLControlVariable *getCOAActive();
|
||||
void setIsCOA(bool IsCOA) { mIsCOA=IsCOA; }
|
||||
void setCOAConnect(LLControlVariable *pConnect, bool IsParent)
|
||||
{
|
||||
mIsCOAParent=IsParent;
|
||||
mCOAConnectedVar=pConnect;
|
||||
if(!IsParent)
|
||||
mSignal = pConnect->mSignal; //Share a single signal.
|
||||
}
|
||||
private:
|
||||
LLSD getComparableValue(const LLSD& value);
|
||||
@@ -160,6 +178,7 @@ protected:
|
||||
|
||||
eControlType typeStringToEnum(const std::string& typestr);
|
||||
std::string typeEnumToString(eControlType typeenum);
|
||||
std::set<std::string> mIncludedFiles; //To prevent perpetual recursion.
|
||||
public:
|
||||
LLControlGroup();
|
||||
~LLControlGroup();
|
||||
@@ -173,8 +192,8 @@ public:
|
||||
virtual void apply(const std::string& name, LLControlVariable* control) = 0;
|
||||
};
|
||||
void applyToAll(ApplyFunctor* func);
|
||||
|
||||
BOOL declareControl(const std::string& name, eControlType type, const LLSD initial_val, const std::string& comment, BOOL persist, BOOL hidefromsettingseditor = FALSE);
|
||||
|
||||
BOOL declareControl(const std::string& name, eControlType type, const LLSD initial_val, const std::string& comment, BOOL persist, BOOL hidefromsettingseditor = FALSE, bool IsCOA = false);
|
||||
BOOL declareU32(const std::string& name, U32 initial_val, const std::string& comment, BOOL persist = TRUE);
|
||||
BOOL declareS32(const std::string& name, S32 initial_val, const std::string& comment, BOOL persist = TRUE);
|
||||
BOOL declareF32(const std::string& name, F32 initial_val, const std::string& comment, BOOL persist = TRUE);
|
||||
@@ -245,6 +264,12 @@ public:
|
||||
|
||||
// Resets all ignorables
|
||||
void resetWarnings();
|
||||
|
||||
//COA stuff
|
||||
void connectToCOA(LLControlVariable *pConnecter, const std::string& name, eControlType type, const LLSD initial_val, const std::string& comment, BOOL persist);
|
||||
void connectCOAVars(LLControlGroup &OtherGroup);
|
||||
void updateCOASetting(bool coa_enabled);
|
||||
bool handleCOASettingChange(const LLSD& newvalue);
|
||||
};
|
||||
|
||||
//! Helper function for LLCachedControl
|
||||
@@ -260,6 +285,7 @@ eControlType get_control_type(const T& in, LLSD& out)
|
||||
//! An LLCachedControl instance to connect to a LLControlVariable
|
||||
//! without have to manually create and bind a listener to a local
|
||||
//! object.
|
||||
|
||||
template <class T>
|
||||
class LLCachedControl
|
||||
{
|
||||
@@ -279,11 +305,10 @@ public:
|
||||
LLControlGroup &group = gSavedSettings)
|
||||
{Init(name,default_value,comment,group);} //for default (gSavedSettings)
|
||||
private:
|
||||
//Pulled out of ctor due to problems with initializer lists in template classes
|
||||
void Init( const std::string& name,
|
||||
const T& default_value,
|
||||
const std::string& comment,
|
||||
LLControlGroup &group )
|
||||
LLControlGroup &group)
|
||||
{
|
||||
mControlGroup = &group;
|
||||
mControl = mControlGroup->getControl(name);
|
||||
@@ -303,6 +328,8 @@ private:
|
||||
handleValueChange(mControl->getValue());
|
||||
}
|
||||
|
||||
if(mConnection.connected())
|
||||
mConnection.disconnect();
|
||||
// Add a listener to the controls signal...
|
||||
// and store the connection...
|
||||
mConnection = mControl->getSignal()->connect(
|
||||
@@ -325,6 +352,8 @@ public:
|
||||
}
|
||||
|
||||
operator const T&() const { return mCachedValue; }
|
||||
|
||||
|
||||
/* Sometimes implicit casting doesn't work.
|
||||
For instance, something like "LLCachedControl<LLColor4> color("blah",LLColor4()); color.getValue();"
|
||||
will not compile as it will look for the function getValue() in LLCachedControl, which doesn't exist.
|
||||
@@ -334,10 +363,6 @@ public:
|
||||
*/
|
||||
const T &get() const { return mCachedValue; }
|
||||
|
||||
LLPointer<LLControlVariable> getControl() const
|
||||
{
|
||||
return mControl;
|
||||
}
|
||||
private:
|
||||
void declareTypedControl(LLControlGroup& group,
|
||||
const std::string& name,
|
||||
@@ -375,48 +400,6 @@ private:
|
||||
}
|
||||
};
|
||||
|
||||
//Easiest way without messing with LLCachedControl even more..
|
||||
template <class T>
|
||||
class LLCachedCOAControl
|
||||
{
|
||||
LLCachedControl<T> *mCachedControl;
|
||||
boost::signals::connection mCOAConnection;
|
||||
const std::string mName;
|
||||
const std::string mComment;
|
||||
const T mDefault;
|
||||
public:
|
||||
LLCachedCOAControl(const std::string& name, const T& default_value,const std::string& comment = "Declared In Code")
|
||||
: mName(name),mDefault(default_value),mComment(comment)
|
||||
{
|
||||
mCachedControl = new LLCachedControl<T>(mName,mDefault,gCOASavedSettings,mComment);
|
||||
|
||||
static LLCachedControl<bool> settings_per_account("AscentStoreSettingsPerAccount",false);
|
||||
mCOAConnection = settings_per_account.getControl()->getSignal()->connect(
|
||||
boost::bind(&LLCachedCOAControl<T>::handleCOAValueChange, this, _1));
|
||||
}
|
||||
~LLCachedCOAControl()
|
||||
{
|
||||
if(mCachedControl)
|
||||
delete mCachedControl;
|
||||
if(mCOAConnection.connected())
|
||||
mCOAConnection.disconnect();
|
||||
}
|
||||
LLCachedCOAControl& operator =(const T& newvalue)
|
||||
{
|
||||
mCachedControl = newvalue;
|
||||
return *this;
|
||||
}
|
||||
bool handleCOAValueChange(const LLSD& newvalue)
|
||||
{
|
||||
if(mCachedControl)
|
||||
delete mCachedControl;
|
||||
mCachedControl = new LLCachedControl<T>(mName,mDefault,gCOASavedSettings,mComment);
|
||||
return true;
|
||||
}
|
||||
operator const T&() const { return *mCachedControl; }
|
||||
const T &get() const { return *mCachedControl; }
|
||||
};
|
||||
|
||||
//Following is actually defined in newview/llviewercontrol.cpp, but extern access is fine (Unless GCC bites me)
|
||||
template <> eControlType get_control_type<U32>(const U32& in, LLSD& out);
|
||||
template <> eControlType get_control_type<S32>(const S32& in, LLSD& out);
|
||||
|
||||
@@ -491,6 +491,7 @@ set(viewer_SOURCE_FILES
|
||||
pipeline.cpp
|
||||
scriptcounter.cpp
|
||||
wlfPanel_AdvSettings.cpp
|
||||
shcommandhandler.cpp
|
||||
)
|
||||
|
||||
# This gets renamed in the packaging step
|
||||
@@ -949,6 +950,7 @@ set(viewer_HEADER_FILES
|
||||
VertexCache.h
|
||||
VorbisFramework.h
|
||||
wlfPanel_AdvSettings.h
|
||||
shcommandhandler.h
|
||||
)
|
||||
|
||||
source_group("CMake Rules" FILES ViewerInstall.cmake)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
60
indra/newview/app_settings/settings_SH.xml
Normal file
60
indra/newview/app_settings/settings_SH.xml
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" ?>
|
||||
<llsd>
|
||||
<map>
|
||||
<key>SHAllowScriptCommands</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Allow script to client intercommunication</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>SHScriptCommandPrefix</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Prefix that script commands must be prepended with.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>#@#@!</string>
|
||||
</map>
|
||||
<key>SHChatCommandPrefix</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Prefix that chat commands must be prepended with</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>>></string>
|
||||
</map>
|
||||
<key>SHScriptCommandSeparator</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Separator to use when tokenizing script command arguments</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>|</string>
|
||||
</map>
|
||||
<key>SHChatCommandSeparator</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Separator to use when tokenizing chat command arguments</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string> </string>
|
||||
</map>
|
||||
</map>
|
||||
</llsd>
|
||||
590
indra/newview/app_settings/settings_ascent.xml
Normal file
590
indra/newview/app_settings/settings_ascent.xml
Normal file
@@ -0,0 +1,590 @@
|
||||
<?xml version="1.0" ?>
|
||||
<llsd>
|
||||
<map>
|
||||
<!-- Ascent-Specific Settings -->
|
||||
<key>AscentPowerfulWizard</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>User is a bad enough dude.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentUpdateTagsOnLoad</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Allowed client to update client definitions file.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentUploadSettings</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Settings for upload browser</string>
|
||||
<key>Type</key>
|
||||
<string>LLSD</string>
|
||||
<key>Value</key>
|
||||
<map>
|
||||
<key>ActivePath</key>
|
||||
<string>None</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>AscentActiveDayCycle</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Day cycle currently in use</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>Default</string>
|
||||
</map>
|
||||
<key>AscentAutoCloseOOC</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Auto-close OOC chat (i.e. add \"))\" if not found and \"((\" was used)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentAllowMUpose</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Allow MU* pose style in chat and IM (with ':' as a synonymous to '/me ')</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentStoreSettingsPerAccount</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Toggles whether to save certain settings per-account, rather than per-install.</string>
|
||||
<key>Persist</key>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentDataSeparator</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>This separates data bits from each other - May be used in multiple locations</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>::</string>
|
||||
</map>
|
||||
<key>AscentHideTypingNotification</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Keep those jerks guessing by hiding your "____ is typing..." message.</string>
|
||||
<key>Persist</key>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentShowSelfTag</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show your own tag</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentShowSelfTagColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show your own tag</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentAlwaysRezInGroup</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Always rez under the owned land group</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentDisableLogoutScreens</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Disable logout screen progress bar</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentDisableTeleportScreens</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Disable teleport screens</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentShowLookAt</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show Others' Lookat points</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<real>0</real>
|
||||
</map>
|
||||
<key>AscentUseStatusColors</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show special colors for statuses like Friend, Linden, so on</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<real>0</real>
|
||||
</map>
|
||||
<key>AscentAvatarXModifier</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Avatar position modifier (X)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.0</real>
|
||||
</map>
|
||||
<key>AscentAvatarYModifier</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Avatar position modifier (Y)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.0</real>
|
||||
</map>
|
||||
<key>AscentAvatarZModifier</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Avatar position modifier (Z)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.0</real>
|
||||
</map>
|
||||
<key>AscentUseSystemFolder</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Enables the System folder for setting and non-permanent asset storage.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentSystemTemporary</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>When enabled, temporary uploads are put in the System Asset folder (if System Folder exists).</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentShowFriendsTag</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show friends client tags as (Friend), and colorize them specially.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentUseTag</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Broadcast client tag</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentShowIdleTime</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show client tags for others.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentShowOthersTag</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show client tags for others.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentShowOthersTagColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show avatar names in the color of their client.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentBuildAlwaysEnabled</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show build option regardless of whether you can (May not mean you can actually build there)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentDisableMinZoomDist</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Allows much closer camera zooming.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentFlyAlwaysEnabled</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Always allow fly (Does actually always allow flight)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentDisplayTotalScriptJumps</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Shows large changes to the sim script count in chat.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>Ascentnumscriptdiff</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>The delta to spam you the script jump difference</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>100</real>
|
||||
</map>
|
||||
<key>Ascentnumscripts</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>temp..</string>
|
||||
<key>Persist</key>
|
||||
<integer>0</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>0.0</real>
|
||||
</map>
|
||||
<key>AscentBuildPrefs_ActualRoot</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Center selection on parent prim's center.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentBuildPrefs_PivotIsPercent</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Would you like the chatbar to be able to be used for command line functions?</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentBuildPrefs_PivotX</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>idfk</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>50.0</real>
|
||||
</map>
|
||||
<key>AscentBuildPrefs_PivotY</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>idfk</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>50.0</real>
|
||||
</map>
|
||||
<key>AscentBuildPrefs_PivotZ</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>idfk</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>50.0</real>
|
||||
</map>
|
||||
<key>AscentCmdLine</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Would you like the chatbar to be able to be used for command line functions?</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentCmdLineClearChat</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Clear chat history to stop lag from chat spam</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>clrchat</string>
|
||||
</map>
|
||||
<key>AscentCmdLineHeight</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Teleport to height function command</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>gth</string>
|
||||
</map>
|
||||
<key>AscentCmdLinePos</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Teleport to position function command</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>gtp</string>
|
||||
</map>
|
||||
<key>AscentCmdLineGround</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Teleport to ground function command</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>flr</string>
|
||||
</map>
|
||||
<key>AscentCmdLineTeleportHome</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Teleport to home function command</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>tph</string>
|
||||
</map>
|
||||
<key>AscentCmdLineRezPlatform</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Rez a platform underneath you</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>rezplat</string>
|
||||
</map>
|
||||
<key>AscentPlatformSize</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>How wide the rezzed platform will appear to be.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>30</real>
|
||||
</map>
|
||||
<key>AscentCmdLineMapTo</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Teleport to a region by name rapidly</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>mapto</string>
|
||||
</map>
|
||||
<key>AscentMapToKeepPos</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Attempt to arrive in the same location you were at.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentCmdLineDrawDistance</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Change draw distance quickly</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>dd</string>
|
||||
</map>
|
||||
<key>AscentCmdTeleportToCam</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Teleport to your camera</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>tp2cam</string>
|
||||
</map>
|
||||
<key>AscentCmdLineKeyToName</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Use a fast key to name querry</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>key2name</string>
|
||||
</map>
|
||||
<key>AscentCmdLineOfferTp</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Offer a teleport to target avatar</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>offertp</string>
|
||||
</map>
|
||||
<key>AscentCmdLineCalc</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Calculates an expression</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>calc</string>
|
||||
</map>
|
||||
<key>AscentCmdLineTP2</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Teleport to a person by name, partials work.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>tp2</string>
|
||||
</map>
|
||||
</map>
|
||||
</llsd>
|
||||
179
indra/newview/app_settings/settings_ascent_COA.xml
Normal file
179
indra/newview/app_settings/settings_ascent_COA.xml
Normal file
@@ -0,0 +1,179 @@
|
||||
<?xml version="1.0" ?>
|
||||
<llsd>
|
||||
<map>
|
||||
<!-- Ascent's Optionally Account-Specific Settings -->
|
||||
<key>MoyMiniMapCustomColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Custom minimap color you wish to have.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.375</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
<key>IsCOA</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageAnnounceIncoming</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Start IM window as soon as the person starts typing</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
<key>IsCOA</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentCustomTagLabel</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Label for the custom local tag</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>Custom</string>
|
||||
<key>IsCOA</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentCustomTagColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of custom tag.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.5</real>
|
||||
<real>1.0</real>
|
||||
<real>0.25</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
<key>IsCOA</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentUseCustomTag</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show a custom tag.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
<key>IsCOA</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentReportClientIndex</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show your own tag</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
<key>IsCOA</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentFriendColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat messages from other residents</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
<real>0.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
<key>IsCOA</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentLindenColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat messages from other residents</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.0</real>
|
||||
<real>0.0</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
<key>IsCOA</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentMutedColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat messages from other residents</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.7</real>
|
||||
<real>0.7</real>
|
||||
<real>0.7</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
<key>IsCOA</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentEstateOwnerColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat messages from other residents</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>1.0</real>
|
||||
<real>0.6</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
<key>IsCOA</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentReportClientUUID</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Broadcasted Client Key</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>8873757c-092a-98fb-1afd-ecd347566fcd</string>
|
||||
<key>IsCOA</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
</map>
|
||||
</llsd>
|
||||
@@ -1,31 +1,23 @@
|
||||
<llsd>
|
||||
<map>
|
||||
<map>
|
||||
<!--Inclusion of other xml setting files-->
|
||||
<key>Include</key>
|
||||
<array>
|
||||
<string>settings_per_account_ascent.xml</string>
|
||||
</array>
|
||||
<key>AO.Settings</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>List for animation overrider</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>LLSD</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<string />
|
||||
</array>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<string />
|
||||
</array>
|
||||
</map>
|
||||
<key>AscentContactGroups</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>List for contact groups</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>LLSD</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<string />
|
||||
</array>
|
||||
</map>
|
||||
<key>Responder.Settings</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
@@ -40,258 +32,6 @@
|
||||
<string>This is an autoresponse!</string>
|
||||
</map>
|
||||
</map>
|
||||
<key>AscentInstantMessageAnnounceIncoming</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Open a new IM tab when another person begins typing to you and announce that they are doing so.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>MoyMiniMapCustomColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Custom minimap color you wish to have.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.375</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponse</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Auto response to instant messages</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>This is an autoresponse!</string>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponseAnyone</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to auto-respond to anyone</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponseFriends</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to auto-respond to non-friends</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponseItem</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to send a item along with the autoresponse</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponseItemData</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>UUID</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string></string>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponseMuted</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to auto-respond to muted people</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponseRepeat</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to keep on resending the autoresponse every line they send</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageShowOnTyping</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to perform the autorespond the moment they begin to type instead of waiting for a actual message</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageShowResponded</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to hide IMs entirely from those you have chosen to send autoresponses</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<!-- Ascent Account-Specific (If active) -->
|
||||
<key>AscentFriendColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat messages from other residents</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
<real>0.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>AscentLindenColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat messages from other residents</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.0</real>
|
||||
<real>0.0</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>AscentMutedColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat messages from other residents</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.7</real>
|
||||
<real>0.7</real>
|
||||
<real>0.7</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>AscentEstateOwnerColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat messages from other residents</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>1.0</real>
|
||||
<real>0.6</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>AscentUseCustomTag</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show a custom local tag.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentCustomTagColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of custom local tag.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.5</real>
|
||||
<real>1.0</real>
|
||||
<real>0.25</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>AscentCustomTagLabel</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Label for the custom local tag</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>Custom</string>
|
||||
</map>
|
||||
<key>AscentReportClientIndex</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show your own tag</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>AscentReportClientUUID</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Broadcasted Client Key</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>8873757c-092a-98fb-1afd-ecd347566fcd</string>
|
||||
</map>
|
||||
<!-- Ascent Account-Specific (Always) -->
|
||||
<!-- General additions -->
|
||||
<key>rkeastInventoryPreviousCount</key>
|
||||
<map>
|
||||
@@ -326,509 +66,6 @@
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<!-- Standard options now with Account-specific (if active) handling -->
|
||||
<key>AgentChatColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat messages from other residents</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>BackgroundChatColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat bubble background</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.0</real>
|
||||
<real>0.0</real>
|
||||
<real>0.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>EffectColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Particle effects color</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>1.0</real>
|
||||
<real>0.0</real>
|
||||
<real>0.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>IMChatColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of instant messages from other residents</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>llOwnerSayChatColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat messages from objects only visible to the owner</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.990000009537</real>
|
||||
<real>0.990000009537</real>
|
||||
<real>0.689999997616</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>ObjectChatColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat messages from objects</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.699999988079</real>
|
||||
<real>0.899999976158</real>
|
||||
<real>0.699999988079</real>
|
||||
<real>1</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>SkinCurrent</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>The currently selected skin.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>default</string>
|
||||
</map>
|
||||
<key>SystemChatColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of chat messages from SL System</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>0.800000011921</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>UISndAlert</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for alerts (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>ed124764-705d-d497-167a-182cd9fa2e6c</string>
|
||||
</map>
|
||||
<key>UISndBadKeystroke</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for invalid keystroke (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>2ca849ba-2885-4bc3-90ef-d4987a5b983a</string>
|
||||
</map>
|
||||
<key>UISndClick</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for mouse click (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>4c8c3c77-de8d-bde2-b9b8-32635e0fd4a6</string>
|
||||
</map>
|
||||
<key>UISndClickRelease</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for mouse button release (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>4c8c3c77-de8d-bde2-b9b8-32635e0fd4a6</string>
|
||||
</map>
|
||||
<key>UISndDebugSpamToggle</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Log UI sound effects as they are played</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>UISndHealthReductionF</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for female pain (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>219c5d93-6c09-31c5-fb3f-c5fe7495c115</string>
|
||||
</map>
|
||||
<key>UISndHealthReductionM</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for male pain (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>e057c244-5768-1056-c37e-1537454eeb62</string>
|
||||
</map>
|
||||
<key>UISndHealthReductionThreshold</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Amount of health reduction required to trigger "pain" sound</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>10.0</real>
|
||||
</map>
|
||||
<key>UISndInvalidOp</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for invalid operations (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>4174f859-0d3d-c517-c424-72923dc21f65</string>
|
||||
</map>
|
||||
<key>UISndMoneyChangeDown</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for L$ balance increase (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>104974e3-dfda-428b-99ee-b0d4e748d3a3</string>
|
||||
</map>
|
||||
<key>UISndMoneyChangeThreshold</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Amount of change in L$ balance required to trigger "money" sound</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>50.0</real>
|
||||
</map>
|
||||
<key>UISndMoneyChangeUp</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for L$ balance decrease(uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>77a018af-098e-c037-51a6-178f05877c6f</string>
|
||||
</map>
|
||||
<key>UISndNewIncomingIMSession</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for new instant message session(uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>67cc2844-00f3-2b3c-b991-6418d01e1bb7</string>
|
||||
</map>
|
||||
<key>UISndObjectCreate</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for object creation (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>f4a0660f-5446-dea2-80b7-6482a082803c</string>
|
||||
</map>
|
||||
<key>UISndObjectDelete</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for object deletion (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>0cb7b00a-4c10-6948-84de-a93c09af2ba9</string>
|
||||
</map>
|
||||
<key>UISndObjectRezIn</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for rezzing objects (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>3c8fc726-1fd6-862d-fa01-16c5b2568db6</string>
|
||||
</map>
|
||||
<key>UISndObjectRezOut</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for derezzing objects (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>00000000-0000-0000-0000-000000000000</string>
|
||||
</map>
|
||||
<key>UISndPieMenuAppear</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for opening pie menu (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>8eaed61f-92ff-6485-de83-4dcc938a478e</string>
|
||||
</map>
|
||||
<key>UISndPieMenuHide</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for closing pie menu (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>00000000-0000-0000-0000-000000000000</string>
|
||||
</map>
|
||||
<key>UISndPieMenuSliceHighlight0</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for selecting pie menu item 0 (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>d9f73cf8-17b4-6f7a-1565-7951226c305d</string>
|
||||
</map>
|
||||
<key>UISndPieMenuSliceHighlight1</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for selecting pie menu item 1 (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>f6ba9816-dcaf-f755-7b67-51b31b6233e5</string>
|
||||
</map>
|
||||
<key>UISndPieMenuSliceHighlight2</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for selecting pie menu item 2 (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>7aff2265-d05b-8b72-63c7-dbf96dc2f21f</string>
|
||||
</map>
|
||||
<key>UISndPieMenuSliceHighlight3</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for selecting pie menu item 3 (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>09b2184e-8601-44e2-afbb-ce37434b8ba1</string>
|
||||
</map>
|
||||
<key>UISndPieMenuSliceHighlight4</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for selecting pie menu item 4 (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>bbe4c7fc-7044-b05e-7b89-36924a67593c</string>
|
||||
</map>
|
||||
<key>UISndPieMenuSliceHighlight5</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for selecting pie menu item 5 (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>d166039b-b4f5-c2ec-4911-c85c727b016c</string>
|
||||
</map>
|
||||
<key>UISndPieMenuSliceHighlight6</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for selecting pie menu item 6 (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>242af82b-43c2-9a3b-e108-3b0c7e384981</string>
|
||||
</map>
|
||||
<key>UISndPieMenuSliceHighlight7</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for selecting pie menu item 7 (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>c1f334fb-a5be-8fe7-22b3-29631c21cf0b</string>
|
||||
</map>
|
||||
<key>UISndSnapshot</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for taking a snapshot (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>3d09f582-3851-c0e0-f5ba-277ac5c73fb4</string>
|
||||
</map>
|
||||
<key>UISndStartIM</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for starting a new IM session (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>c825dfbc-9827-7e02-6507-3713d18916c1</string>
|
||||
</map>
|
||||
<key>UISndTeleportOut</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for teleporting (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>d7a9a565-a013-2a69-797d-5332baa1a947</string>
|
||||
</map>
|
||||
<key>UISndTyping</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for starting to type a chat message (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>5e191c7b-8996-9ced-a177-b2ac32bfea06</string>
|
||||
</map>
|
||||
<key>UISndWindowClose</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for closing a window (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>2c346eda-b60c-ab33-1119-b8941916a499</string>
|
||||
</map>
|
||||
<key>UISndWindowOpen</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Sound file for opening a window (uuid for sound asset)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>c80260ba-41fd-8a46-768a-6bf236360e3a</string>
|
||||
</map>
|
||||
<key>UserChatColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Color of your chat messages</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Color4</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
<real>1.0</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>BusyModeResponse</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
||||
117
indra/newview/app_settings/settings_per_account_ascent.xml
Normal file
117
indra/newview/app_settings/settings_per_account_ascent.xml
Normal file
@@ -0,0 +1,117 @@
|
||||
<llsd>
|
||||
<map>
|
||||
<!-- Ascent Account-Specific (Always) -->
|
||||
<key>AscentContactGroups</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>List for contact groups</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>LLSD</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<string />
|
||||
</array>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponse</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Auto response to instant messages</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string>This is an autoresponse!</string>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponseAnyone</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to auto-respond to anyone</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponseFriends</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to auto-respond to non-friends</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponseItem</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to send a item along with the autoresponse</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponseItemData</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>UUID</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>String</string>
|
||||
<key>Value</key>
|
||||
<string></string>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponseMuted</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to auto-respond to muted people</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageResponseRepeat</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to keep on resending the autoresponse every line they send</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageShowOnTyping</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to perform the autorespond the moment they begin to type instead of waiting for a actual message</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AscentInstantMessageShowResponded</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to hide IMs entirely from those you have chosen to send autoresponses</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
</map>
|
||||
</llsd>
|
||||
@@ -123,8 +123,8 @@ void LLPrefsAscentVanImpl::onCommitColor(LLUICtrl* ctrl, void* user_data)
|
||||
{
|
||||
|
||||
llinfos << "Recreating color message for tag update." << llendl;
|
||||
gCOASavedSettings->setString("AscentCustomTagLabel", self->childGetValue("custom_tag_label_box"));
|
||||
gCOASavedSettings->setColor4("AscentCustomTagColor", self->childGetValue("custom_tag_color_swatch"));
|
||||
gSavedSettings.setString("AscentCustomTagLabel", self->childGetValue("custom_tag_label_box"));
|
||||
gSavedSettings.setColor4("AscentCustomTagColor", self->childGetValue("custom_tag_color_swatch"));
|
||||
gAgent.sendAgentSetAppearance();
|
||||
gAgent.resetClientTag();
|
||||
}
|
||||
@@ -181,7 +181,7 @@ void LLPrefsAscentVanImpl::onCommitCheckBox(LLUICtrl* ctrl, void* user_data)
|
||||
}
|
||||
|
||||
BOOL showCustomOptions;
|
||||
showCustomOptions = gCOASavedSettings->getBOOL("AscentUseCustomTag");
|
||||
showCustomOptions = gSavedSettings.getBOOL("AscentUseCustomTag");
|
||||
self->childSetValue("customize_own_tag_check", showCustomOptions);
|
||||
self->childSetEnabled("custom_tag_label_text", showCustomOptions);
|
||||
self->childSetEnabled("custom_tag_label_box", showCustomOptions);
|
||||
@@ -204,21 +204,21 @@ void LLPrefsAscentVanImpl::refreshValues()
|
||||
mShowSelfClientTagColor = gSavedSettings.getBOOL("AscentShowSelfTagColor");
|
||||
mCustomTagOn = gSavedSettings.getBOOL("AscentUseCustomTag");
|
||||
|
||||
mSelectedClient = gCOASavedSettings->getU32("AscentReportClientIndex");
|
||||
mEffectColor = gCOASavedSettings->getColor4("EffectColor");
|
||||
mSelectedClient = gSavedSettings.getU32("AscentReportClientIndex");
|
||||
mEffectColor = gSavedSettings.getColor4("EffectColor");
|
||||
|
||||
childSetEnabled("custom_tag_label_text", mCustomTagOn);
|
||||
childSetEnabled("custom_tag_label_box", mCustomTagOn);
|
||||
childSetEnabled("custom_tag_color_text", mCustomTagOn);
|
||||
childSetEnabled("custom_tag_color_swatch", mCustomTagOn);
|
||||
|
||||
mCustomTagLabel = gCOASavedSettings->getString("AscentCustomTagLabel");
|
||||
mCustomTagColor = gCOASavedSettings->getColor4("AscentCustomTagColor");
|
||||
mFriendColor = gCOASavedSettings->getColor4("AscentFriendColor");
|
||||
mLindenColor = gCOASavedSettings->getColor4("AscentLindenColor");
|
||||
mMutedColor = gCOASavedSettings->getColor4("AscentMutedColor");
|
||||
mEMColor = gCOASavedSettings->getColor4("AscentEstateOwnerColor");
|
||||
mCustomColor = gCOASavedSettings->getColor4("MoyMiniMapCustomColor");
|
||||
mCustomTagLabel = gSavedSettings.getString("AscentCustomTagLabel");
|
||||
mCustomTagColor = gSavedSettings.getColor4("AscentCustomTagColor");
|
||||
mFriendColor = gSavedSettings.getColor4("AscentFriendColor");
|
||||
mLindenColor = gSavedSettings.getColor4("AscentLindenColor");
|
||||
mMutedColor = gSavedSettings.getColor4("AscentMutedColor");
|
||||
mEMColor = gSavedSettings.getColor4("AscentEstateOwnerColor");
|
||||
mCustomColor = gSavedSettings.getColor4("MoyMiniMapCustomColor");
|
||||
}
|
||||
|
||||
void LLPrefsAscentVanImpl::refresh()
|
||||
@@ -246,23 +246,23 @@ void LLPrefsAscentVanImpl::refresh()
|
||||
getChild<LLColorSwatchCtrl>("muted_color_swatch")->set(mMutedColor);
|
||||
getChild<LLColorSwatchCtrl>("em_color_swatch")->set(mEMColor);
|
||||
getChild<LLColorSwatchCtrl>("custom_color_swatch")->set(mCustomColor);
|
||||
gCOASavedSettings->setColor4("EffectColor", LLColor4::white);
|
||||
gCOASavedSettings->setColor4("EffectColor", mEffectColor);
|
||||
gSavedSettings.setColor4("EffectColor", LLColor4::white);
|
||||
gSavedSettings.setColor4("EffectColor", mEffectColor);
|
||||
|
||||
gCOASavedSettings->setColor4("AscentFriendColor", LLColor4::white);
|
||||
gCOASavedSettings->setColor4("AscentFriendColor", mFriendColor);
|
||||
gSavedSettings.setColor4("AscentFriendColor", LLColor4::white);
|
||||
gSavedSettings.setColor4("AscentFriendColor", mFriendColor);
|
||||
|
||||
gCOASavedSettings->setColor4("AscentLindenColor", LLColor4::white);
|
||||
gCOASavedSettings->setColor4("AscentLindenColor", mLindenColor);
|
||||
gSavedSettings.setColor4("AscentLindenColor", LLColor4::white);
|
||||
gSavedSettings.setColor4("AscentLindenColor", mLindenColor);
|
||||
|
||||
gCOASavedSettings->setColor4("AscentMutedColor", LLColor4::white);
|
||||
gCOASavedSettings->setColor4("AscentMutedColor", mMutedColor);
|
||||
gSavedSettings.setColor4("AscentMutedColor", LLColor4::white);
|
||||
gSavedSettings.setColor4("AscentMutedColor", mMutedColor);
|
||||
|
||||
gCOASavedSettings->setColor4("AscentEstateOwnerColor", LLColor4::white);
|
||||
gCOASavedSettings->setColor4("AscentEstateOwnerColor", mEMColor);
|
||||
gSavedSettings.setColor4("AscentEstateOwnerColor", LLColor4::white);
|
||||
gSavedSettings.setColor4("AscentEstateOwnerColor", mEMColor);
|
||||
|
||||
gCOASavedSettings->setColor4("MoyMiniMapCustomColor", LLColor4::white);
|
||||
gCOASavedSettings->setColor4("MoyMiniMapCustomColor", mCustomColor);
|
||||
gSavedSettings.setColor4("MoyMiniMapCustomColor", LLColor4::white);
|
||||
gSavedSettings.setColor4("MoyMiniMapCustomColor", mCustomColor);
|
||||
gAgent.resetClientTag();
|
||||
}
|
||||
|
||||
@@ -274,18 +274,18 @@ void LLPrefsAscentVanImpl::cancel()
|
||||
childSetValue("tp_sound_check", mPlayTPSound);
|
||||
childSetValue("disable_logout_screen_check", mShowLogScreens);
|
||||
|
||||
gCOASavedSettings->setColor4("EffectColor", LLColor4::white);
|
||||
gCOASavedSettings->setColor4("EffectColor", mEffectColor);
|
||||
gCOASavedSettings->setColor4("AscentFriendColor", LLColor4::yellow);
|
||||
gCOASavedSettings->setColor4("AscentFriendColor", mFriendColor);
|
||||
gCOASavedSettings->setColor4("AscentLindenColor", LLColor4::yellow);
|
||||
gCOASavedSettings->setColor4("AscentLindenColor", mLindenColor);
|
||||
gCOASavedSettings->setColor4("AscentMutedColor", LLColor4::yellow);
|
||||
gCOASavedSettings->setColor4("AscentMutedColor", mMutedColor);
|
||||
gCOASavedSettings->setColor4("AscentEstateOwnerColor", LLColor4::yellow);
|
||||
gCOASavedSettings->setColor4("AscentEstateOwnerColor", mEMColor);
|
||||
gCOASavedSettings->setColor4("MoyMiniMapCustomColor", LLColor4::yellow);
|
||||
gCOASavedSettings->setColor4("MoyMiniMapCustomColor", mCustomColor);
|
||||
gSavedSettings.setColor4("EffectColor", LLColor4::white);
|
||||
gSavedSettings.setColor4("EffectColor", mEffectColor);
|
||||
gSavedSettings.setColor4("AscentFriendColor", LLColor4::yellow);
|
||||
gSavedSettings.setColor4("AscentFriendColor", mFriendColor);
|
||||
gSavedSettings.setColor4("AscentLindenColor", LLColor4::yellow);
|
||||
gSavedSettings.setColor4("AscentLindenColor", mLindenColor);
|
||||
gSavedSettings.setColor4("AscentMutedColor", LLColor4::yellow);
|
||||
gSavedSettings.setColor4("AscentMutedColor", mMutedColor);
|
||||
gSavedSettings.setColor4("AscentEstateOwnerColor", LLColor4::yellow);
|
||||
gSavedSettings.setColor4("AscentEstateOwnerColor", mEMColor);
|
||||
gSavedSettings.setColor4("MoyMiniMapCustomColor", LLColor4::yellow);
|
||||
gSavedSettings.setColor4("MoyMiniMapCustomColor", mCustomColor);
|
||||
}
|
||||
|
||||
void LLPrefsAscentVanImpl::apply()
|
||||
@@ -306,8 +306,8 @@ void LLPrefsAscentVanImpl::apply()
|
||||
if (client_index != mSelectedClient)
|
||||
{
|
||||
client_uuid = combo->getSelectedValue().asString();
|
||||
gCOASavedSettings->setString("AscentReportClientUUID", client_uuid);
|
||||
gCOASavedSettings->setU32("AscentReportClientIndex", client_index);
|
||||
gSavedSettings.setString("AscentReportClientUUID", client_uuid);
|
||||
gSavedSettings.setU32("AscentReportClientIndex", client_index);
|
||||
LLVOAvatar* avatar = gAgent.getAvatarObject();
|
||||
if (!avatar) return;
|
||||
|
||||
@@ -319,15 +319,15 @@ void LLPrefsAscentVanImpl::apply()
|
||||
gSavedSettings.setBOOL("AscentShowSelfTag", childGetValue("show_self_tag_check"));
|
||||
gSavedSettings.setBOOL("AscentShowSelfTagColor", childGetValue("show_self_tag_color_check"));
|
||||
|
||||
gCOASavedSettings->setColor4("EffectColor", childGetValue("effect_color_swatch"));
|
||||
gCOASavedSettings->setColor4("AscentFriendColor", childGetValue("friend_color_swatch"));
|
||||
gCOASavedSettings->setColor4("AscentLindenColor", childGetValue("linden_color_swatch"));
|
||||
gCOASavedSettings->setColor4("AscentMutedColor", childGetValue("muted_color_swatch"));
|
||||
gCOASavedSettings->setColor4("AscentEstateOwnerColor", childGetValue("em_color_swatch"));
|
||||
gCOASavedSettings->setColor4("MoyMiniMapCustomColor", childGetValue("custom_color_swatch"));
|
||||
gCOASavedSettings->setBOOL("AscentUseCustomTag", childGetValue("customize_own_tag_check"));
|
||||
gCOASavedSettings->setString("AscentCustomTagLabel", childGetValue("custom_tag_label_box"));
|
||||
gCOASavedSettings->setColor4("AscentCustomTagColor", childGetValue("custom_tag_color_swatch"));
|
||||
gSavedSettings.setColor4("EffectColor", childGetValue("effect_color_swatch"));
|
||||
gSavedSettings.setColor4("AscentFriendColor", childGetValue("friend_color_swatch"));
|
||||
gSavedSettings.setColor4("AscentLindenColor", childGetValue("linden_color_swatch"));
|
||||
gSavedSettings.setColor4("AscentMutedColor", childGetValue("muted_color_swatch"));
|
||||
gSavedSettings.setColor4("AscentEstateOwnerColor", childGetValue("em_color_swatch"));
|
||||
gSavedSettings.setColor4("MoyMiniMapCustomColor", childGetValue("custom_color_swatch"));
|
||||
gSavedSettings.setBOOL("AscentUseCustomTag", childGetValue("customize_own_tag_check"));
|
||||
gSavedSettings.setString("AscentCustomTagLabel", childGetValue("custom_tag_label_box"));
|
||||
gSavedSettings.setColor4("AscentCustomTagColor", childGetValue("custom_tag_color_swatch"));
|
||||
|
||||
refreshValues();
|
||||
}
|
||||
|
||||
@@ -474,7 +474,7 @@ void LLAgent::init()
|
||||
|
||||
// LLDebugVarMessageBox::show("Camera Lag", &CAMERA_FOCUS_HALF_LIFE, 0.5f, 0.01f);
|
||||
|
||||
mEffectColor = gCOASavedSettings->getColor4("EffectColor");
|
||||
mEffectColor = gSavedSettings.getColor4("EffectColor");
|
||||
|
||||
mInitialized = TRUE;
|
||||
}
|
||||
@@ -7539,7 +7539,7 @@ void LLAgent::sendAgentSetAppearance()
|
||||
LLColor4 color;
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
{
|
||||
color = gCOASavedSettings->setColor4("AscentCustomTagColor");
|
||||
color = gSavedSettings.setColor4("AscentCustomTagColor");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1758,6 +1758,10 @@ bool LLAppViewer::initConfiguration()
|
||||
return false;
|
||||
}
|
||||
|
||||
//COA vars in gSavedSettings will be linked to gSavedPerAccountSettings entries that will be created if not present.
|
||||
//Signals will be shared between linked vars.
|
||||
gSavedSettings.connectCOAVars(gSavedPerAccountSettings);
|
||||
|
||||
// - set procedural settings
|
||||
gSavedSettings.setString("ClientSettingsFile",
|
||||
gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFilename("Default", "Global")));
|
||||
|
||||
@@ -70,6 +70,10 @@
|
||||
|
||||
#include "chatbar_as_cmdline.h"
|
||||
|
||||
#if SHY_MOD //Command handler
|
||||
#include "shcommandhandler.h"
|
||||
#endif //shy_mod
|
||||
|
||||
//
|
||||
// Globals
|
||||
//
|
||||
@@ -468,6 +472,9 @@ void LLChatBar::sendChat( EChatType type )
|
||||
if (!utf8_revised_text.empty() && cmd_line_chat(utf8_revised_text, nType))
|
||||
{
|
||||
// Chat with animation
|
||||
#if SHY_MOD //Command handler
|
||||
if(!SHCommandHandler::handleCommand(true, utf8_revised_text, gAgentID, (LLViewerObject*)gAgent.getAvatarObject()))//returns true if handled
|
||||
#endif //shy_mod
|
||||
sendChatFromViewer(utf8_revised_text, nType, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -700,25 +700,25 @@ void LLFloaterAvatarList::refreshAvatarList()
|
||||
//Lindens are always more Linden than your friend, make that take precedence
|
||||
if(LLMuteList::getInstance()->isLinden(av_name))
|
||||
{
|
||||
static const LLCachedCOAControl<LLColor4> ascent_linden_color("AscentLindenColor",LLColor4(0.f,0.f,1.f,1.f));
|
||||
static const LLCachedControl<LLColor4> ascent_linden_color("AscentLindenColor",LLColor4(0.f,0.f,1.f,1.f));
|
||||
element["columns"][LIST_AVATAR_NAME]["color"] = ascent_linden_color.get().getValue();
|
||||
}
|
||||
//check if they are an estate owner at their current position
|
||||
else if(estate_owner.notNull() && av_id == estate_owner)
|
||||
{
|
||||
static const LLCachedCOAControl<LLColor4> ascent_estate_owner_color("AscentEstateOwnerColor",LLColor4(1.f,0.6f,1.f,1.f));
|
||||
static const LLCachedControl<LLColor4> ascent_estate_owner_color("AscentEstateOwnerColor",LLColor4(1.f,0.6f,1.f,1.f));
|
||||
element["columns"][LIST_AVATAR_NAME]["color"] = ascent_estate_owner_color.get().getValue();
|
||||
}
|
||||
//without these dots, SL would suck.
|
||||
else if(is_agent_friend(av_id))
|
||||
{
|
||||
static const LLCachedCOAControl<LLColor4> ascent_friend_color("AscentFriendColor",LLColor4(1.f,1.f,0.f,1.f));
|
||||
static const LLCachedControl<LLColor4> ascent_friend_color("AscentFriendColor",LLColor4(1.f,1.f,0.f,1.f));
|
||||
element["columns"][LIST_AVATAR_NAME]["color"] = ascent_friend_color.get().getValue();
|
||||
}
|
||||
//big fat jerkface who is probably a jerk, display them as such.
|
||||
else if(LLMuteList::getInstance()->isMuted(av_id))
|
||||
{
|
||||
static const LLCachedCOAControl<LLColor4> ascent_muted_color("AscentMutedColor",LLColor4(0.7f,0.7f,0.7f,1.f));
|
||||
static const LLCachedControl<LLColor4> ascent_muted_color("AscentMutedColor",LLColor4(0.7f,0.7f,0.7f,1.f));
|
||||
element["columns"][LIST_AVATAR_NAME]["color"] = ascent_muted_color.get().getValue();
|
||||
}
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ void LLFloaterSettingsDebug::draw()
|
||||
{
|
||||
LLComboBox* settings_combo = getChild<LLComboBox>("settings_combo");
|
||||
LLControlVariable* controlp = (LLControlVariable*)settings_combo->getCurrentUserdata();
|
||||
updateControl(controlp);
|
||||
updateControl(controlp ? controlp->getCOAActive() : NULL);
|
||||
|
||||
LLFloater::draw();
|
||||
}
|
||||
@@ -125,7 +125,7 @@ void LLFloaterSettingsDebug::onSettingSelect(LLUICtrl* ctrl, void* user_data)
|
||||
LLComboBox* combo_box = (LLComboBox*)ctrl;
|
||||
LLControlVariable* controlp = (LLControlVariable*)combo_box->getCurrentUserdata();
|
||||
|
||||
floaterp->updateControl(controlp);
|
||||
floaterp->updateControl(controlp ? controlp->getCOAActive() : NULL);
|
||||
}
|
||||
|
||||
//static
|
||||
@@ -135,6 +135,7 @@ void LLFloaterSettingsDebug::onCommitSettings(LLUICtrl* ctrl, void* user_data)
|
||||
|
||||
LLComboBox* settings_combo = floaterp->getChild<LLComboBox>("settings_combo");
|
||||
LLControlVariable* controlp = (LLControlVariable*)settings_combo->getCurrentUserdata();
|
||||
controlp = controlp ? controlp->getCOAActive() : NULL;
|
||||
|
||||
LLVector3 vector;
|
||||
LLVector3d vectord;
|
||||
@@ -212,6 +213,7 @@ void LLFloaterSettingsDebug::onClickDefault(void* user_data)
|
||||
|
||||
if (controlp)
|
||||
{
|
||||
controlp = controlp->getCOAActive();
|
||||
controlp->resetToDefault();
|
||||
floaterp->updateControl(controlp);
|
||||
}
|
||||
@@ -243,6 +245,7 @@ void LLFloaterSettingsDebug::updateControl(LLControlVariable* controlp)
|
||||
|
||||
if (controlp)
|
||||
{
|
||||
controlp = controlp->getCOAActive();
|
||||
eControlType type = controlp->type();
|
||||
|
||||
//hide combo box only for non booleans, otherwise this will result in the combo box closing every frame
|
||||
|
||||
@@ -60,6 +60,10 @@
|
||||
|
||||
#include "chatbar_as_cmdline.h"
|
||||
|
||||
#if SHY_MOD //Command handler
|
||||
#include "shcommandhandler.h"
|
||||
#endif //shy_mod
|
||||
|
||||
LLGestureManager gGestureManager;
|
||||
|
||||
// Longest time, in seconds, to wait for all animations to stop playing
|
||||
@@ -886,6 +890,9 @@ void LLGestureManager::runStep(LLMultiGesture* gesture, LLGestureStep* step)
|
||||
|
||||
if ( cmd_line_chat(chat_text, CHAT_TYPE_NORMAL))
|
||||
{
|
||||
#if SHY_MOD //Command handler
|
||||
if(!SHCommandHandler::handleCommand(true, chat_text, gAgentID, gAgent.getAvatarObject()))//returns true if handled
|
||||
#endif //shy_mod
|
||||
gChatBar->sendChatFromViewer(chat_text, CHAT_TYPE_NORMAL, animate);
|
||||
}
|
||||
gesture->mCurrentStep++;
|
||||
|
||||
@@ -629,6 +629,91 @@ bool packRoleUpdateMessageBlock(LLMessageSystem* msg,
|
||||
return start_message;
|
||||
}
|
||||
|
||||
#if SHY_MOD //Group Title script access
|
||||
#include "shcommandhandler.h"
|
||||
class SH_GroupRoleChanger
|
||||
{
|
||||
std::pair<LLUUID, std::string> gForceRole;
|
||||
typedef std::map<const bool,std::string> title_map_t;
|
||||
typedef std::map<std::string,title_map_t> role_map_t;
|
||||
typedef std::map<const LLUUID,role_map_t> group_map_t;
|
||||
|
||||
//group_map_t = <GroupID,<Rolename,<Title/Desc,text>>>
|
||||
group_map_t gPendingRoleChanges; //lol
|
||||
|
||||
public:
|
||||
virtual ~SH_GroupRoleChanger(){}
|
||||
void CheckUpdateRole(const LLUUID &group_id,LLGroupMgrGroupData::role_list_t &roles)
|
||||
{
|
||||
group_map_t::iterator group_it = gPendingRoleChanges.find(group_id);
|
||||
if(group_it != gPendingRoleChanges.end()) //valid group
|
||||
{
|
||||
for(LLGroupMgrGroupData::role_list_t::iterator roles_it = roles.begin();roles_it!=roles.end();++roles_it)
|
||||
{
|
||||
//bool start_message = true;
|
||||
LLGroupRoleData &role = *(roles_it->second);
|
||||
LLRoleData data = role.getRoleData();
|
||||
role_map_t::iterator stored_role_it = group_it->second.find(data.mRoleName);
|
||||
if(stored_role_it != group_it->second.end())//found matching role.
|
||||
{
|
||||
if(!(stored_role_it->second.empty()))
|
||||
{
|
||||
title_map_t::iterator entry_it = stored_role_it->second.begin();
|
||||
for(;entry_it!=stored_role_it->second.end();++entry_it)
|
||||
{
|
||||
if(entry_it->first == false)
|
||||
data.mRoleDescription = entry_it->second;
|
||||
else
|
||||
data.mRoleTitle = entry_it->second;
|
||||
}
|
||||
if(gForceRole.first == group_id && gForceRole.second == data.mRoleName)
|
||||
{
|
||||
if(gAgent.getGroupID() != group_id)
|
||||
{
|
||||
LLMessageSystem* msg = gMessageSystem;
|
||||
msg->newMessageFast(_PREHASH_ActivateGroup);
|
||||
msg->nextBlockFast(_PREHASH_AgentData);
|
||||
msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
|
||||
msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
|
||||
msg->addUUIDFast(_PREHASH_GroupID, group_id);
|
||||
gAgent.sendReliableMessage(); //Set group.
|
||||
}
|
||||
LLGroupMgr::getInstance()->sendGroupTitleUpdate(group_id,role.getID());
|
||||
}
|
||||
LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(group_id);
|
||||
gdatap->setRoleData(role.getID(),data);
|
||||
}
|
||||
}
|
||||
}
|
||||
gPendingRoleChanges.erase(group_it);
|
||||
}
|
||||
LLGroupMgr::getInstance()->sendGroupRoleChanges(group_id); //get roles list from groupid
|
||||
gForceRole.first = LLUUID::null;
|
||||
}
|
||||
void RequestUpdateRole(const LLUUID& group_id, const std::string &rolename, bool title, const std::string &string, bool force = false) //if !title then desc.
|
||||
{
|
||||
if(force)
|
||||
{
|
||||
gForceRole.first = group_id;
|
||||
gForceRole.second = rolename;
|
||||
}
|
||||
gPendingRoleChanges[group_id][rolename][title]=string;
|
||||
LLGroupMgr::getInstance()->sendGroupRoleDataRequest(group_id); //get roles list from groupid
|
||||
}
|
||||
}gGroupRoleChanger;
|
||||
|
||||
CMD_SCRIPT(setroletext)
|
||||
{
|
||||
const LLUUID group_id = args[1].asUUID();
|
||||
const std::string rolename = args[2].asString();
|
||||
const bool title = args[3].asInteger() == 1;
|
||||
const std::string str = args[4].asString();
|
||||
const bool force = args[5].asInteger() == 1;
|
||||
llinfos<<"Updating role- group_id:"<<group_id<<" rolename:"<<rolename<<" title:"<<title<<" string:"<<str<<llendl;
|
||||
gGroupRoleChanger.RequestUpdateRole(group_id,rolename,title,str,force);
|
||||
}
|
||||
#endif //shy_mod
|
||||
|
||||
void LLGroupMgrGroupData::sendRoleChanges()
|
||||
{
|
||||
// Commit changes locally
|
||||
@@ -1031,6 +1116,9 @@ void LLGroupMgr::processGroupRoleDataReply(LLMessageSystem* msg, void** data)
|
||||
}
|
||||
|
||||
group_data->mChanged = TRUE;
|
||||
#if SHY_MOD //Group title script access
|
||||
gGroupRoleChanger.CheckUpdateRole(group_id,group_data->mRoles);
|
||||
#endif //shy_mod
|
||||
LLGroupMgr::getInstance()->notifyObservers(GC_ROLE_DATA);
|
||||
}
|
||||
|
||||
|
||||
@@ -360,10 +360,10 @@ void LLNetMap::draw()
|
||||
// LLColor4 mapcolor = gAvatarMapColor;
|
||||
|
||||
static const LLCachedControl<LLColor4> standard_color("MapAvatar",LLColor4(0.f,1.f,0.f,1.f),gColors);
|
||||
static const LLCachedCOAControl<LLColor4> friend_color("AscentFriendColor",LLColor4(1.f,1.f,0.f,1.f));
|
||||
static const LLCachedCOAControl<LLColor4> em_color("AscentEstateOwnerColor",LLColor4(1.f,0.6f,1.f,1.f));
|
||||
static const LLCachedCOAControl<LLColor4> linden_color("AscentLindenColor",LLColor4(0.f,0.f,1.f,1.f));
|
||||
static const LLCachedCOAControl<LLColor4> muted_color("AscentMutedColor",LLColor4(0.7f,0.7f,0.7f,1.f));
|
||||
static const LLCachedControl<LLColor4> friend_color("AscentFriendColor",LLColor4(1.f,1.f,0.f,1.f));
|
||||
static const LLCachedControl<LLColor4> em_color("AscentEstateOwnerColor",LLColor4(1.f,0.6f,1.f,1.f));
|
||||
static const LLCachedControl<LLColor4> linden_color("AscentLindenColor",LLColor4(0.f,0.f,1.f,1.f));
|
||||
static const LLCachedControl<LLColor4> muted_color("AscentMutedColor",LLColor4(0.7f,0.7f,0.7f,1.f));
|
||||
|
||||
std::vector<LLUUID> avatar_ids;
|
||||
std::vector<LLVector3d> positions;
|
||||
|
||||
@@ -79,14 +79,14 @@ void LLSavedSettingsGlue::setString(LLUICtrl* ctrl, void* data)
|
||||
//Begin Ascent SavedSettings/PerAccountSettings handling
|
||||
|
||||
//Get
|
||||
LLControlVariable *gCOASavedSettings->getControl(const std::string &name)
|
||||
LLControlVariable *LLSavedSettingsGlue::getControl(const std::string &name)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
return gSavedSettings.getControl(name);
|
||||
else
|
||||
return gSavedPerAccountSettings.getControl(name);
|
||||
}
|
||||
BOOL gCOASavedSettings->getBOOL(const std::string &name)
|
||||
BOOL LLSavedSettingsGlue::getBOOL(const std::string &name)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
return gSavedSettings.getBOOL(name);
|
||||
@@ -94,7 +94,7 @@ BOOL gCOASavedSettings->getBOOL(const std::string &name)
|
||||
return gSavedPerAccountSettings.getBOOL(name);
|
||||
}
|
||||
|
||||
S32 gCOASavedSettings->getS32(const std::string &name)
|
||||
S32 LLSavedSettingsGlue::getS32(const std::string &name)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
return gSavedSettings.getS32(name);
|
||||
@@ -102,7 +102,7 @@ S32 gCOASavedSettings->getS32(const std::string &name)
|
||||
return gSavedPerAccountSettings.getS32(name);
|
||||
}
|
||||
|
||||
F32 gCOASavedSettings->getF32(const std::string &name)
|
||||
F32 LLSavedSettingsGlue::getF32(const std::string &name)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
return gSavedSettings.getF32(name);
|
||||
@@ -110,7 +110,7 @@ F32 gCOASavedSettings->getF32(const std::string &name)
|
||||
return gSavedPerAccountSettings.getF32(name);
|
||||
}
|
||||
|
||||
U32 gCOASavedSettings->getU32(const std::string &name)
|
||||
U32 LLSavedSettingsGlue::getU32(const std::string &name)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
return gSavedSettings.getU32(name);
|
||||
@@ -118,7 +118,7 @@ U32 gCOASavedSettings->getU32(const std::string &name)
|
||||
return gSavedPerAccountSettings.getU32(name);
|
||||
}
|
||||
|
||||
std::string gCOASavedSettings->getString(const std::string &name)
|
||||
std::string LLSavedSettingsGlue::getString(const std::string &name)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
return gSavedSettings.getString(name);
|
||||
@@ -126,7 +126,7 @@ std::string gCOASavedSettings->getString(const std::string &name)
|
||||
return gSavedPerAccountSettings.getString(name);
|
||||
}
|
||||
|
||||
LLColor4 gCOASavedSettings->getColor4(const std::string &name)
|
||||
LLColor4 LLSavedSettingsGlue::getColor4(const std::string &name)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
return gSavedSettings.getColor4(name);
|
||||
@@ -136,7 +136,7 @@ LLColor4 gCOASavedSettings->getColor4(const std::string &name)
|
||||
|
||||
//Set
|
||||
|
||||
void gCOASavedSettings->setBOOL(const std::string &name, BOOL value)
|
||||
void LLSavedSettingsGlue::setBOOL(const std::string &name, BOOL value)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
gSavedSettings.setBOOL(name, value);
|
||||
@@ -144,7 +144,7 @@ void gCOASavedSettings->setBOOL(const std::string &name, BOOL value)
|
||||
gSavedPerAccountSettings.setBOOL(name, value);
|
||||
}
|
||||
|
||||
void gCOASavedSettings->setS32(const std::string &name, S32 value)
|
||||
void LLSavedSettingsGlue::setS32(const std::string &name, S32 value)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
gSavedSettings.setS32(name, value);
|
||||
@@ -152,7 +152,7 @@ void gCOASavedSettings->setS32(const std::string &name, S32 value)
|
||||
gSavedPerAccountSettings.setS32(name, value);
|
||||
}
|
||||
|
||||
void gCOASavedSettings->setF32(const std::string &name, F32 value)
|
||||
void LLSavedSettingsGlue::setF32(const std::string &name, F32 value)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
gSavedSettings.setF32(name, value);
|
||||
@@ -160,7 +160,7 @@ void gCOASavedSettings->setF32(const std::string &name, F32 value)
|
||||
gSavedPerAccountSettings.setF32(name, value);
|
||||
}
|
||||
|
||||
void gCOASavedSettings->setU32(const std::string &name, U32 value)
|
||||
void LLSavedSettingsGlue::setU32(const std::string &name, U32 value)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
gSavedSettings.setU32(name, value);
|
||||
@@ -168,7 +168,7 @@ void gCOASavedSettings->setU32(const std::string &name, U32 value)
|
||||
gSavedPerAccountSettings.setU32(name, value);
|
||||
}
|
||||
|
||||
void gCOASavedSettings->setString(const std::string &name, std::string value)
|
||||
void LLSavedSettingsGlue::setString(const std::string &name, std::string value)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
gSavedSettings.setString(name, value);
|
||||
@@ -176,7 +176,7 @@ void gCOASavedSettings->setString(const std::string &name, std::string value)
|
||||
gSavedPerAccountSettings.setString(name, value);
|
||||
}
|
||||
|
||||
void gCOASavedSettings->setColor4(const std::string &name, LLColor4 value)
|
||||
void LLSavedSettingsGlue::setColor4(const std::string &name, LLColor4 value)
|
||||
{
|
||||
if (!gSavedSettings.getBOOL("AscentStoreSettingsPerAccount"))
|
||||
gSavedSettings.setColor4(name, value);
|
||||
|
||||
@@ -49,7 +49,7 @@ public:/*
|
||||
static void setString(LLUICtrl* ctrl, void* name);
|
||||
|
||||
//Ascent Client-Or-Account Settings Get
|
||||
static LLControlVariable *gCOASavedSettings->getControl(const std::string &name);
|
||||
static LLControlVariable *getControl(const std::string &name);
|
||||
static BOOL getCOABOOL(const std::string &name);
|
||||
static S32 getCOAS32(const std::string &name);
|
||||
static F32 getCOAF32(const std::string &name);
|
||||
|
||||
@@ -82,7 +82,6 @@ BOOL gHackGodmode = FALSE;
|
||||
std::map<std::string, LLControlGroup*> gSettings;
|
||||
LLControlGroup gSavedSettings; // saved at end of session
|
||||
LLControlGroup gSavedPerAccountSettings; // saved at end of session
|
||||
LLControlGroup *gCOASavedSettings = &gSavedSettings; //Ascent Client-Or-Account
|
||||
LLControlGroup gColors; // read-only
|
||||
LLControlGroup gCrashSettings; // saved at end of session
|
||||
|
||||
@@ -499,11 +498,7 @@ bool handleCloudSettingsChanged(const LLSD& newvalue)
|
||||
LLPipeline::toggleRenderTypeControl((void*)LLPipeline::RENDER_TYPE_CLASSIC_CLOUDS);
|
||||
return true;
|
||||
}
|
||||
bool handleAscentCOAChange(const LLSD& newvalue)
|
||||
{
|
||||
gCOASavedSettings = newvalue.asBoolean() ? &gSavedPerAccountSettings : &gSavedSettings;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool handleAscentSelfTag(const LLSD& newvalue)
|
||||
{
|
||||
if(gAgent.getAvatarObject())
|
||||
@@ -522,7 +517,6 @@ bool handleAscentGlobalTag(const LLSD& newvalue)
|
||||
return true;
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void settings_setup_listeners()
|
||||
{
|
||||
gSavedSettings.getControl("FirstPersonAvatarVisible")->getSignal()->connect(boost::bind(&handleRenderAvatarMouselookChanged, _1));
|
||||
@@ -645,7 +639,6 @@ void settings_setup_listeners()
|
||||
gSavedSettings.getControl("UserLogFile")->getSignal()->connect(boost::bind(&handleLogFileChanged, _1));
|
||||
gSavedSettings.getControl("RenderHideGroupTitle")->getSignal()->connect(boost::bind(handleHideGroupTitleChanged, _1));
|
||||
gSavedSettings.getControl("EffectColor")->getSignal()->connect(boost::bind(handleEffectColorChanged, _1));
|
||||
gSavedPerAccountSettings.getControl("EffectColor")->getSignal()->connect(boost::bind(handleEffectColorChanged, _1));
|
||||
gSavedSettings.getControl("VectorizePerfTest")->getSignal()->connect(boost::bind(&handleVectorizeChanged, _1));
|
||||
gSavedSettings.getControl("VectorizeEnable")->getSignal()->connect(boost::bind(&handleVectorizeChanged, _1));
|
||||
gSavedSettings.getControl("VectorizeProcessor")->getSignal()->connect(boost::bind(&handleVectorizeChanged, _1));
|
||||
@@ -664,12 +657,11 @@ void settings_setup_listeners()
|
||||
gSavedSettings.getControl("CloudsEnabled")->getSignal()->connect(boost::bind(&handleCloudSettingsChanged, _1));
|
||||
gSavedSettings.getControl("SkyUseClassicClouds")->getSignal()->connect(boost::bind(&handleCloudSettingsChanged, _1));
|
||||
|
||||
gSavedSettings.getControl("AscentStoreSettingsPerAccount")->getSignal()->connect(boost::bind(&handleAscentCOAChange,_1));
|
||||
gSavedSettings.getControl("AscentUseTag")->getSignal()->connect(boost::bind(&handleAscentSelfTag,_1));
|
||||
gCOASavedSettings->getControl("AscentUseCustomTag")->getSignal()->connect(boost::bind(&handleAscentSelfTag,_1));
|
||||
gCOASavedSettings->getControl("AscentCustomTagColor")->getSignal()->connect(boost::bind(&handleAscentSelfTag,_1));
|
||||
gCOASavedSettings->getControl("AscentCustomTagLabel")->getSignal()->connect(boost::bind(&handleAscentSelfTag,_1));
|
||||
gCOASavedSettings->getControl("AscentReportClientUUID")->getSignal()->connect(boost::bind(&handleAscentSelfTag,_1));
|
||||
gSavedSettings.getControl("AscentUseCustomTag")->getSignal()->connect(boost::bind(&handleAscentSelfTag,_1));
|
||||
gSavedSettings.getControl("AscentCustomTagColor")->getSignal()->connect(boost::bind(&handleAscentSelfTag,_1));
|
||||
gSavedSettings.getControl("AscentCustomTagLabel")->getSignal()->connect(boost::bind(&handleAscentSelfTag,_1));
|
||||
gSavedSettings.getControl("AscentReportClientUUID")->getSignal()->connect(boost::bind(&handleAscentSelfTag,_1));
|
||||
gSavedSettings.getControl("AscentShowFriendsTag")->getSignal()->connect(boost::bind(&handleAscentGlobalTag,_1));
|
||||
gSavedSettings.getControl("AscentUseStatusColors")->getSignal()->connect(boost::bind(&handleAscentGlobalTag,_1));
|
||||
}
|
||||
|
||||
@@ -54,8 +54,7 @@ extern std::map<std::string, LLControlGroup*> gSettings;
|
||||
void create_graphics_group(LLControlGroup& group);
|
||||
|
||||
// saved at end of session
|
||||
// gSavedSettings and gCOASavedSettings moved to llcontrol.h
|
||||
extern LLControlGroup gSavedPerAccountSettings;
|
||||
// gSavedSettings and gSavedPerAccountSettings moved to llcontrol.h
|
||||
|
||||
// Read-only
|
||||
extern LLControlGroup gColors;
|
||||
@@ -76,7 +75,6 @@ bool handleCloudSettingsChanged(const LLSD& newvalue);
|
||||
//A template would be a little awkward to use here.. so.. a preprocessor macro. Alas. onCommitControlSetting(gSavedSettings) etc.
|
||||
inline void onCommitControlSetting_gSavedSettings(LLUICtrl* ctrl, void* name) {gSavedSettings.setValue((const char*)name,ctrl->getValue());}
|
||||
inline void onCommitControlSetting_gSavedPerAccountSettings(LLUICtrl* ctrl, void* name) {gSavedPerAccountSettings.setValue((const char*)name,ctrl->getValue());}
|
||||
inline void onCommitControlSetting_gCOASavedSettings(LLUICtrl* ctrl, void* name) {gCOASavedSettings->setValue((const char*)name,ctrl->getValue());}
|
||||
#define onCommitControlSetting(controlgroup) onCommitControlSetting_##controlgroup
|
||||
|
||||
//#define TEST_CACHED_CONTROL 1
|
||||
|
||||
@@ -50,6 +50,10 @@
|
||||
|
||||
#include "chatbar_as_cmdline.h"
|
||||
|
||||
#if SHY_MOD //Command handler
|
||||
#include "shcommandhandler.h"
|
||||
#endif //shy_mod
|
||||
|
||||
// Globals
|
||||
LLViewerGestureList gGestureList;
|
||||
|
||||
@@ -134,8 +138,11 @@ void LLViewerGesture::doTrigger( BOOL send_chat )
|
||||
}
|
||||
}
|
||||
|
||||
cmd_line_chat(mOutputString, CHAT_TYPE_NORMAL);
|
||||
if ( send_chat && !mOutputString.empty())
|
||||
bool handled = !cmd_line_chat(mOutputString, CHAT_TYPE_NORMAL);
|
||||
#if SHY_MOD //Command handler
|
||||
handled = handled || SHCommandHandler::handleCommand(true, mOutputString, gAgentID, gAgent.getAvatarObject());
|
||||
#endif //shy_mod
|
||||
if (!handled && send_chat && !mOutputString.empty())
|
||||
{
|
||||
// Don't play nodding animation, since that might not blend
|
||||
// with the gesture animation.
|
||||
|
||||
@@ -143,6 +143,10 @@
|
||||
#include "llviewernetwork.h"
|
||||
// </edit>
|
||||
|
||||
#if SHY_MOD //Group Title script access
|
||||
# include "shcommandhandler.h"
|
||||
#endif //shy_mod
|
||||
|
||||
#include <boost/tokenizer.hpp>
|
||||
|
||||
#if LL_WINDOWS // For Windows specific error handler
|
||||
@@ -2673,21 +2677,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
||||
if (chatter)
|
||||
{
|
||||
chat.mPosAgent = chatter->getPositionAgent();
|
||||
|
||||
// Make swirly things only for talking objects. (not script debug messages, though)
|
||||
if (chat.mSourceType == CHAT_SOURCE_OBJECT
|
||||
&& chat.mChatType != CHAT_TYPE_DEBUG_MSG
|
||||
&& gSavedSettings.getBOOL("EffectScriptChatParticles") )
|
||||
{
|
||||
LLPointer<LLViewerPartSourceChat> psc = new LLViewerPartSourceChat(chatter->getPositionAgent());
|
||||
psc->setSourceObject(chatter);
|
||||
psc->setColor(color);
|
||||
//We set the particles to be owned by the object's owner,
|
||||
//just in case they should be muted by the mute list
|
||||
psc->setOwnerUUID(owner_id);
|
||||
LLViewerPartSim::getInstance()->addPartSource(psc);
|
||||
}
|
||||
|
||||
|
||||
// record last audible utterance
|
||||
if (is_audible
|
||||
&& (is_linden || (!is_muted && !is_busy)))
|
||||
@@ -2804,6 +2794,10 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
||||
break;
|
||||
case CHAT_TYPE_DEBUG_MSG:
|
||||
case CHAT_TYPE_OWNER:
|
||||
#if SHY_MOD //Command handler
|
||||
if(SHCommandHandler::handleCommand(false,mesg,from_id,chatter))
|
||||
return;
|
||||
#endif //shy_mod
|
||||
case CHAT_TYPE_NORMAL:
|
||||
verb = ": ";
|
||||
break;
|
||||
@@ -2861,6 +2855,21 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
||||
check_translate_chat(mesg, chat, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
// Make swirly things only for talking objects. (not script debug messages, though)
|
||||
if( chatter
|
||||
&& chat.mSourceType == CHAT_SOURCE_OBJECT
|
||||
&& chat.mChatType != CHAT_TYPE_DEBUG_MSG
|
||||
&& gSavedSettings.getBOOL("EffectScriptChatParticles") )
|
||||
{
|
||||
LLPointer<LLViewerPartSourceChat> psc = new LLViewerPartSourceChat(chatter->getPositionAgent());
|
||||
psc->setSourceObject(chatter);
|
||||
psc->setColor(color);
|
||||
//We set the particles to be owned by the object's owner,
|
||||
//just in case they should be muted by the mute list
|
||||
psc->setOwnerUUID(owner_id);
|
||||
LLViewerPartSim::getInstance()->addPartSource(psc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3473,11 +3473,11 @@ void LLVOAvatar::getClientInfo(std::string& client, LLColor4& color, BOOL useCom
|
||||
static const LLCachedControl<LLColor4> avatar_name_color("AvatarNameColor",LLColor4(LLColor4U(251, 175, 93, 255)), gColors );
|
||||
if (mIsSelf)
|
||||
{
|
||||
static const LLCachedCOAControl<bool> ascent_use_custom_tag("AscentUseCustomTag", false);
|
||||
static const LLCachedCOAControl<LLColor4> ascent_custom_tag_color("AscentCustomTagColor", LLColor4(.5f,1.f,.25f,1.f));
|
||||
static const LLCachedCOAControl<std::string> ascent_custom_tag_label("AscentCustomTagLabel","custom");
|
||||
static const LLCachedControl<bool> ascent_use_tag("AscentUseTag",true);
|
||||
static const LLCachedCOAControl<std::string> ascent_report_client_uuid("AscentReportClientUUID","8873757c-092a-98fb-1afd-ecd347566fcd");
|
||||
static const LLCachedControl<bool> ascent_use_custom_tag("AscentUseCustomTag", false);
|
||||
static const LLCachedControl<LLColor4> ascent_custom_tag_color("AscentCustomTagColor", LLColor4(.5f,1.f,.25f,1.f));
|
||||
static const LLCachedControl<std::string> ascent_custom_tag_label("AscentCustomTagLabel","custom");
|
||||
static const LLCachedControl<bool> ascent_use_tag("AscentUseTag",true);
|
||||
static const LLCachedControl<std::string> ascent_report_client_uuid("AscentReportClientUUID","8873757c-092a-98fb-1afd-ecd347566fcd");
|
||||
|
||||
if (ascent_use_custom_tag)
|
||||
{
|
||||
@@ -3753,25 +3753,25 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
|
||||
//Lindens are always more Linden than your friend, make that take precedence
|
||||
if(LLMuteList::getInstance()->isLinden(getFullname()))
|
||||
{
|
||||
static const LLCachedCOAControl<LLColor4> ascent_linden_color("AscentLindenColor",LLColor4(0.f,0.f,1.f,1.f));
|
||||
static const LLCachedControl<LLColor4> ascent_linden_color("AscentLindenColor",LLColor4(0.f,0.f,1.f,1.f));
|
||||
mClientColor = ascent_linden_color;
|
||||
}
|
||||
//check if they are an estate owner at their current position
|
||||
else if(estate_owner.notNull() && this->getID() == estate_owner)
|
||||
{
|
||||
static const LLCachedCOAControl<LLColor4> ascent_estate_owner_color("AscentEstateOwnerColor",LLColor4(1.f,0.6f,1.f,1.f));
|
||||
static const LLCachedControl<LLColor4> ascent_estate_owner_color("AscentEstateOwnerColor",LLColor4(1.f,0.6f,1.f,1.f));
|
||||
mClientColor = ascent_estate_owner_color;
|
||||
}
|
||||
//without these dots, SL would suck.
|
||||
else if (LLAvatarTracker::instance().getBuddyInfo(this->getID()) != NULL)
|
||||
{
|
||||
static const LLCachedCOAControl<LLColor4> ascent_friend_color("AscentFriendColor",LLColor4(1.f,1.f,0.f,1.f));
|
||||
static const LLCachedControl<LLColor4> ascent_friend_color("AscentFriendColor",LLColor4(1.f,1.f,0.f,1.f));
|
||||
mClientColor = ascent_friend_color;
|
||||
}
|
||||
//big fat jerkface who is probably a jerk, display them as such.
|
||||
else if(LLMuteList::getInstance()->isMuted(this->getID()))
|
||||
{
|
||||
static const LLCachedCOAControl<LLColor4> ascent_muted_color("AscentMutedColor",LLColor4(0.7f,0.7f,0.7f,1.f));
|
||||
static const LLCachedControl<LLColor4> ascent_muted_color("AscentMutedColor",LLColor4(0.7f,0.7f,0.7f,1.f));
|
||||
mClientColor = ascent_muted_color;
|
||||
}
|
||||
}
|
||||
|
||||
178
indra/newview/shcommandhandler.cpp
Normal file
178
indra/newview/shcommandhandler.cpp
Normal file
@@ -0,0 +1,178 @@
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#if SHY_MOD //Command handler
|
||||
|
||||
#include "lluuid.h"
|
||||
#include "llagent.h"
|
||||
#include "llviewerobjectlist.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llhudtext.h"
|
||||
|
||||
#include <boost/tokenizer.hpp>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "shcommandhandler.h"
|
||||
|
||||
inline std::list<SHCommandHandler*> &SHCommandHandler::getScriptCommandList()
|
||||
{
|
||||
static std::list<SHCommandHandler*> sScriptCommandList;
|
||||
return sScriptCommandList;
|
||||
}
|
||||
|
||||
inline std::list<SHCommandHandler*> &SHCommandHandler::getChatCommandList()
|
||||
{
|
||||
static std::list<SHCommandHandler*> sChatCommandList;
|
||||
return sChatCommandList;
|
||||
}
|
||||
|
||||
SHCommandHandler::SHCommandHandler(bool from_chat, command_fn_t callback) : mDispatchFn(callback)
|
||||
{
|
||||
if(from_chat)
|
||||
SHCommandHandler::getChatCommandList().push_back(this);
|
||||
else
|
||||
SHCommandHandler::getScriptCommandList().push_back(this);
|
||||
}
|
||||
bool SHCommandHandler::handleCommand(bool from_chat, const std::string &full_str, const LLUUID &callerid, LLViewerObject *pCaller)
|
||||
{
|
||||
static const LLCachedControl<bool> sh_allow_script_commands("SHAllowScriptCommands",true); //Are script commands enabled?
|
||||
static const LLCachedControl<bool> sh_allow_chat_commands("AscentCmdLine",true); //Are chat commands enabled?
|
||||
|
||||
static const LLCachedControl<std::string> sh_script_cmd_prefix("SHScriptCommandPrefix","#@#@!");//Incomming script commands are prefixed with this string.
|
||||
static const LLCachedControl<std::string> sh_chat_cmd_prefix("SHChatCommandPrefix",">>"); //Outgoing chat commands are prefixed with this string.
|
||||
static const LLCachedControl<std::string> sh_script_cmd_sep("SHScriptCommandSeparator","|"); //Separator for script commands
|
||||
static const LLCachedControl<std::string> sh_chat_cmd_sep("SHChatCommandSeparator"," "); //Separator for chat commands
|
||||
|
||||
const char *szPrefix = from_chat ? sh_chat_cmd_prefix.get().c_str() : sh_script_cmd_prefix.get().c_str();
|
||||
const size_t prefix_len = strlen(szPrefix);
|
||||
|
||||
if(full_str.length() <= prefix_len || (prefix_len && full_str.substr(0,prefix_len)!=szPrefix))
|
||||
return false; //Not a command
|
||||
else if(!isalnum(full_str.c_str()[prefix_len]))
|
||||
return false; //Commands must start with a # or letter
|
||||
else if((!from_chat && !sh_allow_script_commands) || (from_chat && !sh_allow_chat_commands))
|
||||
return !!prefix_len; //These commands are disabled.
|
||||
|
||||
const std::string trimmed_str = full_str.substr(prefix_len,std::string::npos);
|
||||
|
||||
typedef boost::char_separator<char> sep_t;
|
||||
const sep_t sep(from_chat ? sh_chat_cmd_sep.get().c_str(): sh_script_cmd_sep.get().c_str(),"", boost::keep_empty_tokens);
|
||||
const boost::tokenizer<sep_t> tokens(trimmed_str, sep);
|
||||
const boost::tokenizer<sep_t>::const_iterator tok_end = tokens.end();
|
||||
boost::tokenizer<sep_t>::const_iterator tok_iter = tokens.begin();
|
||||
|
||||
if(tok_iter == tok_end) //Shouldn't ever be true.
|
||||
return !from_chat && !!prefix_len; //Don't spam if the prefix was correct yet the string was empty.
|
||||
|
||||
LLSD cmd_args; //Push tokens into LLSD so args can be looked up via args[#]
|
||||
bool found = false; //Return this if found. Also used to determine if cmd_args has been set up.
|
||||
|
||||
//Now look for the command.
|
||||
std::list<SHCommandHandler*> &CommandList = from_chat ? getChatCommandList() : getScriptCommandList();
|
||||
std::list<SHCommandHandler*>::iterator cmd_iter = CommandList.begin();
|
||||
const std::list<SHCommandHandler*>::iterator cmd_end = CommandList.end();
|
||||
const std::string search_arg = utf8str_tolower(*tok_iter);
|
||||
for(cmd_iter;cmd_iter!=cmd_end;++cmd_iter)
|
||||
{
|
||||
if(search_arg==utf8str_tolower((*cmd_iter)->getName()))
|
||||
{
|
||||
if(!found)
|
||||
{
|
||||
found = true;
|
||||
int i = -1;
|
||||
for(tok_iter;tok_iter!=tok_end;++tok_iter) //Fill the LLSD
|
||||
cmd_args[++i] = (*tok_iter);
|
||||
}
|
||||
(*cmd_iter)->Dispatch(cmd_args,trimmed_str,callerid,pCaller);
|
||||
}
|
||||
}
|
||||
|
||||
return found || !!prefix_len; //Don't spam if the prefix was correct yet the command wasn't found.
|
||||
}
|
||||
void SHCommandHandler::send_chat_to_object(const std::string &message, int channel, const LLUUID &target_id/*=gAgentID*/)
|
||||
{
|
||||
if(target_id.isNull())return;
|
||||
LLMessageSystem* msg = gMessageSystem;
|
||||
msg->newMessage("ScriptDialogReply");
|
||||
msg->nextBlock("AgentData");
|
||||
msg->addUUID("AgentID", gAgent.getID());
|
||||
msg->addUUID("SessionID", gAgent.getSessionID());
|
||||
msg->nextBlock("Data");
|
||||
msg->addUUID("ObjectID", target_id);
|
||||
msg->addS32("ChatChannel", channel);
|
||||
msg->addS32("ButtonIndex", 0);
|
||||
msg->addString("ButtonLabel", message);
|
||||
gAgent.sendReliableMessage();
|
||||
}
|
||||
void SHCommandHandler::send_chat_to_object(const std::string &message, int channel, LLViewerObject *pTargetObject)
|
||||
{
|
||||
if(pTargetObject)
|
||||
send_chat_to_object(message,channel,pTargetObject->getID());
|
||||
|
||||
}
|
||||
CMD_SCRIPT(preloadanim)
|
||||
{
|
||||
//args[1] = anim uuid
|
||||
gAssetStorage->getAssetData(args[1],LLAssetType::AT_ANIMATION,(LLGetAssetCallback)NULL,NULL,TRUE);
|
||||
}
|
||||
CMD_SCRIPT(key2name)
|
||||
{
|
||||
struct CCacheNameResponder
|
||||
{
|
||||
const std::string mIdent;
|
||||
const int mChannel;
|
||||
const LLUUID mSourceID;
|
||||
CCacheNameResponder(const std::string &ident,const int chan,const LLUUID &source) :
|
||||
mIdent(ident),mChannel(chan),mSourceID(source) {}
|
||||
static void Handler(const LLUUID &id, const std::string &firstname, const std::string &lastname, BOOL group, void *pData)
|
||||
{
|
||||
CCacheNameResponder *pResponder = (CCacheNameResponder*)pData;
|
||||
std::string out_str = "key2namereply|"+pResponder->mIdent+"|"+firstname+" "+lastname;
|
||||
SHCommandHandler::send_chat_to_object(out_str, pResponder->mChannel, pResponder->mSourceID);
|
||||
delete pResponder;
|
||||
}
|
||||
};
|
||||
//args[1] = identifier
|
||||
//args[2] = av id
|
||||
//args[3] = chan
|
||||
//args[4] = group
|
||||
gCacheName->get(args[2],args[4],&CCacheNameResponder::Handler, new CCacheNameResponder(args[1],args[3],callerid));
|
||||
return;
|
||||
}
|
||||
|
||||
CMD_SCRIPT(getsex)
|
||||
{
|
||||
//args[1] = identifier
|
||||
//args[2] = target id
|
||||
//args[3] = chan
|
||||
LLVOAvatar* pAvatar = gObjectList.findAvatar(args[2]);
|
||||
if(pAvatar)
|
||||
SHCommandHandler::send_chat_to_object(llformat("getsexreply|%s|%d",args[1].asString().c_str(),pAvatar->getVisualParamWeight("male")), args[3], callerid);
|
||||
else
|
||||
SHCommandHandler::send_chat_to_object(llformat("getsexreply|%s|-1",args[1].asString().c_str()), args[3], callerid);
|
||||
}
|
||||
|
||||
CMD_SCRIPT(getwindowsize)
|
||||
{
|
||||
//args[1] = identifier
|
||||
//args[2] = chan
|
||||
const std::string out_msg = llformat("getwindowsizereply|%s|%d|%d",
|
||||
args[1].asString().c_str(),
|
||||
gViewerWindow->getWindowDisplayHeight(),
|
||||
gViewerWindow->getWindowDisplayWidth());
|
||||
SHCommandHandler::send_chat_to_object(out_msg, args[2], callerid);
|
||||
}
|
||||
|
||||
CMD_SCRIPT(gettext)
|
||||
{
|
||||
//args[1] = target id
|
||||
//args[2] = chan
|
||||
LLViewerObject *pObject = gObjectList.findObject(args[1]);
|
||||
if(pObject)
|
||||
{
|
||||
std::string out_msg = pObject->getDebugText();
|
||||
if(!out_msg.empty())
|
||||
SHCommandHandler::send_chat_to_object(out_msg,args[2],callerid);
|
||||
}
|
||||
}
|
||||
|
||||
#endif //shy_mod
|
||||
105
indra/newview/shcommandhandler.h
Normal file
105
indra/newview/shcommandhandler.h
Normal file
@@ -0,0 +1,105 @@
|
||||
#if SHY_MOD //Command handler
|
||||
#include "llviewerobject.h"
|
||||
#include "llagentdata.h"
|
||||
#include "llcontrol.h"
|
||||
|
||||
class SHCommandHandler
|
||||
{
|
||||
public:
|
||||
typedef void(*command_fn_t)(const SHCommandHandler *pCmd, const LLSD &args, const std::string &full_str, const LLUUID &callerid, LLViewerObject *pCaller);
|
||||
private:
|
||||
//Dispatch handled through a function pointer because doing it via class deriviation requires constructors each time
|
||||
// which makes macroing ugly.
|
||||
command_fn_t mDispatchFn;
|
||||
|
||||
//Static initialization fiasco avoidance
|
||||
static std::list<SHCommandHandler*> &getScriptCommandList();
|
||||
static std::list<SHCommandHandler*> &getChatCommandList();
|
||||
public:
|
||||
|
||||
//ctor/dtors
|
||||
SHCommandHandler(bool from_chat, command_fn_t callback);
|
||||
|
||||
//Virtuals:
|
||||
//Virtual destructors in abstract classes are a good thing.
|
||||
virtual ~SHCommandHandler() {}
|
||||
|
||||
//Must override in derived classes.
|
||||
virtual const std::string &getName() const = 0;
|
||||
|
||||
//Call the function pointed to if set.
|
||||
virtual void Dispatch(const LLSD &args, const std::string &full_str, const LLUUID &callerid, LLViewerObject *pCaller) //Overrideable
|
||||
{
|
||||
if(mDispatchFn)
|
||||
(mDispatchFn)(this,args,full_str,callerid,pCaller);
|
||||
}
|
||||
|
||||
//Statics:
|
||||
//Iterate through commands and run Dispatch on any matches.
|
||||
static bool handleCommand(bool from_chat, const std::string &full_str, const LLUUID &callerid, LLViewerObject *pCaller);
|
||||
|
||||
//Self-explanatory
|
||||
static void send_chat_to_object(const std::string &message, int channel, const LLUUID &target_id = gAgentID);
|
||||
static void send_chat_to_object(const std::string &message, int channel, LLViewerObject *pTargetObject);
|
||||
};
|
||||
|
||||
class SHDynamicCommand : public SHCommandHandler
|
||||
{
|
||||
private:
|
||||
LLCachedControl<std::string> *pControl;
|
||||
public:
|
||||
|
||||
//ctor/dtors
|
||||
SHDynamicCommand(bool from_chat, const std::string &str, command_fn_t callback, LLControlGroup *pGroup)
|
||||
: SHCommandHandler(from_chat,callback), pControl(new LLCachedControl<std::string>(str,""))
|
||||
{}
|
||||
SHDynamicCommand(bool from_chat, const std::string &str, command_fn_t callback, LLControlGroup &pGroup = gSavedSettings)
|
||||
: SHCommandHandler(from_chat,callback), pControl(new LLCachedControl<std::string>(str,""))
|
||||
{}
|
||||
|
||||
//Virtuals:
|
||||
virtual ~SHDynamicCommand()
|
||||
{
|
||||
if(pControl)
|
||||
delete pControl;
|
||||
}
|
||||
virtual const std::string &getName() const
|
||||
{
|
||||
static const std::string empty_str;
|
||||
return pControl ? pControl->get() : empty_str;
|
||||
}
|
||||
};
|
||||
|
||||
class SHCommand : public SHCommandHandler
|
||||
{
|
||||
private:
|
||||
const std::string mCommandName;
|
||||
public:
|
||||
SHCommand(bool from_chat, const std::string &str, command_fn_t callback)
|
||||
: SHCommandHandler(from_chat,callback), mCommandName(str)
|
||||
{}
|
||||
virtual const std::string &getName() const
|
||||
{
|
||||
return mCommandName;
|
||||
}
|
||||
};
|
||||
|
||||
#define SETUP_SETTING_CMD(type, varname, group, chat) \
|
||||
void cmd_dispatch_##type##_##varname(const SHCommandHandler *pCmd, const LLSD &args, const std::string &full_str, const LLUUID &callerid, LLViewerObject *pCaller); \
|
||||
SHDynamicCommand cmd_cls_##type##_##varname(chat,#varname,&cmd_dispatch_##type##_##varname,group); \
|
||||
void cmd_dispatch_##type##_##varname(const SHCommandHandler *pCmd, const LLSD &args, const std::string &full_str, const LLUUID &callerid, LLViewerObject *pCaller)
|
||||
|
||||
#define SETUP_STATIC_CMD(type, varname, chat) \
|
||||
void cmd_dispatch_##type##_##varname(const SHCommandHandler *pCmd, const LLSD &args, const std::string &full_str, const LLUUID &callerid, LLViewerObject *pCaller); \
|
||||
SHCommand cmd_cls_##type##_##varname(chat,#varname,&cmd_dispatch_##type##_##varname); \
|
||||
void cmd_dispatch_##type##_##varname(const SHCommandHandler *pCmd, const LLSD &args, const std::string &full_str, const LLUUID &callerid, LLViewerObject *pCaller )
|
||||
|
||||
//Specify control group
|
||||
#define CMD_SCRIPT_SETTING(varname,group) SETUP_SETTING_CMD(script,varname,group,false)
|
||||
#define CMD_CHAT_SETTING(varname,group) SETUP_SETTING_CMD(chat,varname,group,true)
|
||||
|
||||
//command name is static
|
||||
#define CMD_SCRIPT(varname) SETUP_STATIC_CMD(script,varname,false)
|
||||
#define CMD_CHAT(varname) SETUP_STATIC_CMD(chat,varname,true)
|
||||
|
||||
#endif //shy_mod
|
||||
Reference in New Issue
Block a user