phoenix-firestorm/indra/newview/rlvdefines.h

525 lines
29 KiB
C++
Raw Blame History

/**
*
* Copyright (c) 2009-2020, Kitty Barnett
*
* The source code in this file is provided to you under the terms of the
* GNU Lesser General Public License, version 2.1, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. Terms of the LGPL can be found in doc/LGPL-licence.txt
* in this distribution, or online at http://www.gnu.org/licenses/lgpl-2.1.txt
*
* By copying, modifying or distributing this software, you acknowledge that
* you have read and understood your obligations described above, and agree to
* abide by those obligations.
*
*/
#pragma once
#ifdef CATZNIP_STRINGVIEW
#include "llstringview.h"
#endif // CATZNIP_STRINGVIE
// ============================================================================
// Defines
//
// Version of the specifcation we report
const S32 RLV_VERSION_MAJOR = 3;
const S32 RLV_VERSION_MINOR = 4;
const S32 RLV_VERSION_PATCH = 3;
const S32 RLV_VERSION_BUILD = 0;
// Version of the specifcation we report (in compatibility mode)
const S32 RLV_VERSION_MAJOR_COMPAT = 2;
const S32 RLV_VERSION_MINOR_COMPAT = 9;
const S32 RLV_VERSION_PATCH_COMPAT = 28;
const S32 RLV_VERSION_BUILD_COMPAT = 0;
// Implementation version
const S32 RLVa_VERSION_MAJOR = 2;
const S32 RLVa_VERSION_MINOR = 4;
const S32 RLVa_VERSION_PATCH = 2;
const S32 RLVa_IMPL_ID = 13;
// Uncomment before a final release
#define RLV_RELEASE
// Defining these makes it easier if we ever need to change our tag
#define RLV_WARNS LL_WARNS("RLV")
#define RLV_INFOS LL_INFOS("RLV")
#define RLV_DEBUGS LL_DEBUGS("RLV")
#define RLV_ENDL LL_ENDL
#define RLV_VERIFY(f) if (!(f)) { RlvUtil::notifyFailedAssertion(#f, __FILE__, __LINE__); }
#if LL_RELEASE_WITH_DEBUG_INFO || LL_DEBUG
// Turn on extended debugging information
#define RLV_DEBUG
// Make sure we halt execution on errors
#define RLV_ERRS LL_ERRS("RLV")
// Keep our asserts separate from LL's
#define RLV_ASSERT(f) if (!(f)) { RLV_ERRS << "ASSERT (" << #f << ")" << RLV_ENDL; }
#define RLV_ASSERT_DBG(f) RLV_ASSERT(f)
#else
// Don't halt execution on errors in release
#define RLV_ERRS LL_WARNS("RLV")
// We don't want to check assertions in release builds
#ifndef RLV_RELEASE
#define RLV_ASSERT(f) RLV_VERIFY(f)
#define RLV_ASSERT_DBG(f)
#else
#define RLV_ASSERT(f)
#define RLV_ASSERT_DBG(f)
#endif // RLV_RELEASE
#endif // LL_RELEASE_WITH_DEBUG_INFO || LL_DEBUG
#define RLV_ROOT_FOLDER "#RLV"
#define RLV_CMD_PREFIX '@'
#define RLV_MODIFIER_ANIMATION_FREQUENCY 10
#define RLV_MODIFIER_TPLOCAL_DEFAULT 256.f // Any teleport that's more than a region away is non-local
#define RLV_MODIFIER_FARTOUCH_DEFAULT 1.5f // Specifies the default @fartouch distance
#define RLV_MODIFIER_SITTP_DEFAULT 1.5f // Specifies the default @sittp distance
#define RLV_OPTION_SEPARATOR ";" // Default separator used in command options
#define RLV_PUTINV_PREFIX "#RLV/~"
#define RLV_PUTINV_SEPARATOR "/"
#define RLV_PUTINV_MAXDEPTH 4
#define RLV_SETGROUP_THROTTLE 60.f
#define RLV_SETROT_OFFSET F_PI_BY_TWO // @setrot is off by 90 degrees with the rest of SL
#define RLV_STRINGS_FILE "rlva_strings.xml"
#define RLV_FOLDER_FLAG_NOSTRIP "nostrip"
#define RLV_FOLDER_PREFIX_HIDDEN '.'
#define RLV_FOLDER_PREFIX_PUTINV '~'
#define RLV_FOLDER_INVALID_CHARS "/"
// ============================================================================
// Enumeration declarations
//
// NOTE: any changes to this enumeration should be reflected in the RlvBehaviourDictionary constructor
enum ERlvBehaviour {
RLV_BHVR_DETACH = 0, // "detach"
RLV_BHVR_ADDATTACH, // "addattach"
RLV_BHVR_REMATTACH, // "remattach"
RLV_BHVR_ADDOUTFIT, // "addoutfit"
RLV_BHVR_REMOUTFIT, // "remoutfit"
RLV_BHVR_SHAREDWEAR, // "sharedwear"
RLV_BHVR_SHAREDUNWEAR, // "sharedunwear"
RLV_BHVR_UNSHAREDWEAR, // "unsharedwear"
RLV_BHVR_UNSHAREDUNWEAR, // "unsharedunwear"
RLV_BHVR_EMOTE, // "emote"
RLV_BHVR_SENDCHAT, // "sendchat"
RLV_BHVR_RECVCHAT, // "recvchat"
RLV_BHVR_RECVCHATFROM, // "recvchatfrom"
RLV_BHVR_RECVEMOTE, // "recvemote"
RLV_BHVR_RECVEMOTEFROM, // "recvemotefrom"
RLV_BHVR_REDIRCHAT, // "redirchat"
RLV_BHVR_REDIREMOTE, // "rediremote"
RLV_BHVR_CHATWHISPER, // "chatwhisper"
RLV_BHVR_CHATNORMAL, // "chatnormal"
RLV_BHVR_CHATSHOUT, // "chatshout"
RLV_BHVR_SENDCHANNEL,
RLV_BHVR_SENDCHANNELEXCEPT,
RLV_BHVR_SENDIM, // "sendim"
RLV_BHVR_SENDIMTO, // "sendimto"
RLV_BHVR_RECVIM, // "recvim"
RLV_BHVR_RECVIMFROM, // "recvimfrom"
RLV_BHVR_STARTIM, // "startim"
RLV_BHVR_STARTIMTO, // "startimto"
RLV_BHVR_SENDGESTURE,
RLV_BHVR_PERMISSIVE, // "permissive"
RLV_BHVR_NOTIFY, // "notify"
RLV_BHVR_SHARE,
RLV_BHVR_SHOWINV, // "showinv"
RLV_BHVR_SHOWMINIMAP, // "showminimap"
RLV_BHVR_SHOWWORLDMAP, // "showworldmap"
RLV_BHVR_SHOWLOC, // "showloc"
RLV_BHVR_SHOWNAMES, // "shownames"
RLV_BHVR_SHOWNAMETAGS, // "shownametags"
RLV_BHVR_SHOWNEARBY,
RLV_BHVR_SHOWHOVERTEXT, // "showhovertext"
RLV_BHVR_SHOWHOVERTEXTHUD, // "showhovertexthud"
RLV_BHVR_SHOWHOVERTEXTWORLD, // "showhovertextworld"
RLV_BHVR_SHOWHOVERTEXTALL, // "showhovertextall"
RLV_BHVR_SHOWSELF,
RLV_BHVR_SHOWSELFHEAD,
RLV_BHVR_TPLM, // "tplm"
RLV_BHVR_TPLOC, // "tploc"
RLV_BHVR_TPLOCAL,
RLV_BHVR_TPLURE, // "tplure"
RLV_BHVR_TPREQUEST, // "tprequest"
RLV_BHVR_VIEWNOTE, // "viewnote"
RLV_BHVR_VIEWSCRIPT, // "viewscript"
RLV_BHVR_VIEWTEXTURE, // "viewtexture"
RLV_BHVR_ACCEPTPERMISSION, // "acceptpermission"
RLV_BHVR_ACCEPTTP, // "accepttp"
RLV_BHVR_ACCEPTTPREQUEST, // "accepttprequest"
RLV_BHVR_ALLOWIDLE, // "allowidle"
RLV_BHVR_BUY, // "buy"
RLV_BHVR_EDIT, // "edit"
RLV_BHVR_EDITATTACH,
RLV_BHVR_EDITOBJ, // "editobj"
RLV_BHVR_EDITWORLD,
RLV_BHVR_VIEWTRANSPARENT,
RLV_BHVR_VIEWWIREFRAME,
RLV_BHVR_PAY, // "pay"
RLV_BHVR_REZ, // "rez"
RLV_BHVR_FARTOUCH, // "fartouch"
RLV_BHVR_INTERACT, // "interact"
RLV_BHVR_TOUCHTHIS, // "touchthis"
RLV_BHVR_TOUCHATTACH, // "touchattach"
RLV_BHVR_TOUCHATTACHSELF, // "touchattachself"
RLV_BHVR_TOUCHATTACHOTHER, // "touchattachother"
RLV_BHVR_TOUCHHUD, // "touchhud"
RLV_BHVR_TOUCHWORLD, // "touchworld"
RLV_BHVR_TOUCHALL, // "touchall"
RLV_BHVR_TOUCHME, // "touchme"
RLV_BHVR_FLY, // "fly"
RLV_BHVR_JUMP, // "jump"
RLV_BHVR_SETGROUP, // "setgroup"
RLV_BHVR_UNSIT, // "unsit"
RLV_BHVR_SIT, // "sit"
RLV_BHVR_SITGROUND,
RLV_BHVR_SITTP, // "sittp"
RLV_BHVR_STANDTP, // "standtp"
RLV_BHVR_SETDEBUG, // "setdebug"
RLV_BHVR_SETENV, // "setenv"
RLV_BHVR_ALWAYSRUN, // "alwaysrun"
RLV_BHVR_TEMPRUN, // "temprun"
RLV_BHVR_DETACHME, // "detachme"
RLV_BHVR_ATTACHTHIS, // "attachthis"
RLV_BHVR_ATTACHTHISEXCEPT, // "attachthis_except"
RLV_BHVR_DETACHTHIS, // "detachthis"
RLV_BHVR_DETACHTHISEXCEPT, // "detachthis_except"
RLV_BHVR_ADJUSTHEIGHT, // "adjustheight"
RLV_BHVR_GETHEIGHTOFFSET, // "getheightoffset"
RLV_BHVR_TPTO, // "tpto"
RLV_BHVR_VERSION, // "version"
RLV_BHVR_VERSIONNEW, // "versionnew"
RLV_BHVR_VERSIONNUM, // "versionnum"
RLV_BHVR_GETATTACH, // "getattach"
RLV_BHVR_GETATTACHNAMES, // "getattachnames"
RLV_BHVR_GETADDATTACHNAMES, // "getaddattachnames"
RLV_BHVR_GETREMATTACHNAMES, // "getremattachnames"
RLV_BHVR_GETOUTFIT, // "getoutfit"
RLV_BHVR_GETOUTFITNAMES, // "getoutfitnames"
RLV_BHVR_GETADDOUTFITNAMES, // "getaddoutfitnames"
RLV_BHVR_GETREMOUTFITNAMES, // "getremoutfitnames"
RLV_BHVR_FINDFOLDER, // "findfolder"
RLV_BHVR_FINDFOLDERS, // "findfolders"
RLV_BHVR_GETPATH, // "getpath"
RLV_BHVR_GETPATHNEW, // "getpathnew"
RLV_BHVR_GETINV, // "getinv"
RLV_BHVR_GETINVWORN, // "getinvworn"
RLV_BHVR_GETGROUP, // "getgroup"
RLV_BHVR_GETSITID, // "getsitid"
RLV_BHVR_GETCOMMAND, // "getcommand"
RLV_BHVR_GETSTATUS, // "getstatus"
RLV_BHVR_GETSTATUSALL, // "getstatusall"
RLV_CMD_FORCEWEAR, // Internal representation of all force wear commands
// Camera (behaviours)
RLV_BHVR_SETCAM, // Gives an object exclusive control of the user's camera
RLV_BHVR_SETCAM_AVDIST, // Distance at which nearby avatars turn into a silhouette
RLV_BHVR_SETCAM_AVDISTMIN, // Enforces a minimum distance from the avatar (in m)
RLV_BHVR_SETCAM_AVDISTMAX, // Enforces a maximum distance from the avatar (in m)
RLV_BHVR_SETCAM_ORIGINDISTMIN, // Enforces a minimum distance from the camera origin (in m)
RLV_BHVR_SETCAM_ORIGINDISTMAX, // Enforces a maximum distance from the camera origin (in m)
RLV_BHVR_SETCAM_EYEOFFSET, // Changes the default camera offset
RLV_BHVR_SETCAM_EYEOFFSETSCALE, // Changes the default camera offset scale
RLV_BHVR_SETCAM_FOCUSOFFSET, // Changes the default camera focus offset
RLV_BHVR_SETCAM_FOCUS, // Forces the camera focus and/or position to a specific object, avatar or position
RLV_BHVR_SETCAM_FOV, // Changes the current - vertical - field of view
RLV_BHVR_SETCAM_FOVMIN, // Enforces a minimum - vertical - FOV (in degrees)
RLV_BHVR_SETCAM_FOVMAX, // Enforces a maximum - vertical - FOV (in degrees)
RLV_BHVR_SETCAM_MOUSELOOK, // Prevent the user from going into mouselook
RLV_BHVR_SETCAM_TEXTURES, // Replaces all textures with the specified texture (or the default unrezzed one)
RLV_BHVR_SETCAM_UNLOCK, // Forces the camera focus to the user's avatar
// Camera (behaviours - deprecated)
RLV_BHVR_CAMZOOMMIN, // Enforces a minimum - vertical - FOV angle of 60<36> / multiplier
RLV_BHVR_CAMZOOMMAX, // Enforces a maximum - vertical - FOV angle of 60<36> / multiplier
// Camera (reply)
RLV_BHVR_GETCAM_AVDIST, // Returns the current minimum distance between the camera and the user's avatar
RLV_BHVR_GETCAM_AVDISTMIN, // Returns the active (if any) minimum distance between the camera and the user's avatar
RLV_BHVR_GETCAM_AVDISTMAX, // Returns the active (if any) maxmimum distance between the camera and the user's avatar
RLV_BHVR_GETCAM_FOV, // Returns the current field of view angle (in radians)
RLV_BHVR_GETCAM_FOVMIN, // Returns the active (if any) minimum field of view angle (in radians)
RLV_BHVR_GETCAM_FOVMAX, // Enforces a maximum (if any) maximum field of view angle (in radians)
RLV_BHVR_GETCAM_TEXTURES, // Returns the active (if any) replace texture UUID
// Camera (force)
RLV_BHVR_SETCAM_MODE, // Switch the user's camera into the specified mode (e.g. mouselook or thirdview)
// Effects
RLV_BHVR_SETSPHERE, // Gives an object exclusive control of the 'vision spheres' effect
RLV_BHVR_SETOVERLAY, // Gives an object exclusive control of the overlay
RLV_BHVR_SETOVERLAY_TOUCH, // Determines whether the overlay texture's alpha channel will be used to allow/block world interaction
RLV_BHVR_SETOVERLAY_TWEEN, // Animate between the current overlay settings and the supplied values
RLV_BHVR_COUNT,
RLV_BHVR_UNKNOWN
};
enum ERlvBehaviourModifier
{
RLV_MODIFIER_FARTOUCHDIST, // Radius of a sphere around the user in which they can interact with the world
RLV_MODIFIER_RECVIMDISTMIN, // Minimum distance to receive an IM from an otherwise restricted sender (squared value)
RLV_MODIFIER_RECVIMDISTMAX, // Maximum distance to receive an IM from an otherwise restricted sender (squared value)
RLV_MODIFIER_SENDIMDISTMIN, // Minimum distance to send an IM to an otherwise restricted recipient (squared value)
RLV_MODIFIER_SENDIMDISTMAX, // Maximum distance to send an IM to an otherwise restricted recipient (squared value)
RLV_MODIFIER_STARTIMDISTMIN, // Minimum distance to start an IM to an otherwise restricted recipient (squared value)
RLV_MODIFIER_STARTIMDISTMAX, // Maximum distance to start an IM to an otherwise restricted recipient (squared value)
RLV_MODIFIER_SETCAM_AVDIST, // Distance at which nearby avatars turn into a silhouette (normal value)
RLV_MODIFIER_SETCAM_AVDISTMIN, // Minimum distance between the camera position and the user's avatar (normal value)
RLV_MODIFIER_SETCAM_AVDISTMAX, // Maximum distance between the camera position and the user's avatar (normal value)
RLV_MODIFIER_SETCAM_ORIGINDISTMIN, // Minimum distance between the camera position and the origin point (normal value)
RLV_MODIFIER_SETCAM_ORIGINDISTMAX, // Maximum distance between the camera position and the origin point (normal value)
RLV_MODIFIER_SETCAM_EYEOFFSET, // Specifies the default camera's offset from the camera (vector)
RLV_MODIFIER_SETCAM_EYEOFFSETSCALE, // Specifies the default camera's offset scale (multiplier)
RLV_MODIFIER_SETCAM_FOCUSOFFSET, // Specifies the default camera's focus (vector)
RLV_MODIFIER_SETCAM_FOVMIN, // Minimum value for the camera's field of view (angle in radians)
RLV_MODIFIER_SETCAM_FOVMAX, // Maximum value for the camera's field of view (angle in radians)
RLV_MODIFIER_SETCAM_TEXTURE, // Specifies the UUID of the texture used to texture the world view
RLV_MODIFIER_SHOWNAMETAGSDIST, // Distance at which name tags will still be shown
RLV_MODIFIER_SITTPDIST,
RLV_MODIFIER_TPLOCALDIST,
RLV_MODIFIER_COUNT,
RLV_MODIFIER_UNKNOWN
};
enum class ERlvLocalBhvrModifier
{
// @setoverlay
OverlayAlpha, // Transparency level of the overlay texture (in addition to the texture's own alpha channel)
OverlayTexture, // Specifies the UUID of the overlay texture
OverlayTint, // The tint that's applied to the overlay texture
// @setsphere
SphereMode, // The type of effect that will apply to any pixel that intersects with the sphere (e.g. blend, blur, ...)
SphereOrigin, // The origin of the sphere can either be the avatar or the camera position
SphereColor, // [Blend only] Colour to mix with the actual pixel colour (stored as params)
SphereParams, // Effect parameters (dependent on mode - see RlvSphereEffect)
SphereDistMin, // Distance at which the effect starts and has weight minValue; e.g. for blend this would be colour = mix(colour, sphere_colour, min_alpha)
SphereDistMax, // Distance at which the effect starts and has weight maxValue; e.g. for blend this would be colour = mix(colour, sphere_colour, max_alpha)
SphereDistExtend, // Specifies the value beyond min dist or max dist (by default the sphere extends beyond max distance at max vlaue)
SphereValueMin, // Value of the effect at minimum distance
SphereValueMax, // Value of the effect at maximum distance
SphereTween, // Amount of seconds it takes to lerp from value A to value B
Unknown,
};
enum ERlvBehaviourOptionType
{
RLV_OPTION_NONE, // Behaviour takes no parameters
RLV_OPTION_EXCEPTION, // Behaviour requires an exception as a parameter
RLV_OPTION_NONE_OR_EXCEPTION, // Behaviour takes either no parameters or an exception
RLV_OPTION_MODIFIER, // Behaviour requires a modifier as a parameter
RLV_OPTION_NONE_OR_MODIFIER // Behaviour takes either no parameters or a modifier
};
enum ERlvParamType {
RLV_TYPE_UNKNOWN = 0x00,
RLV_TYPE_ADD = 0x01, // <param> == "n"|"add"
RLV_TYPE_REMOVE = 0x02, // <param> == "y"|"rem"
RLV_TYPE_FORCE = 0x04, // <param> == "force"
RLV_TYPE_REPLY = 0x08, // <param> == <number>
RLV_TYPE_CLEAR = 0x10,
RLV_TYPE_ADDREM = RLV_TYPE_ADD | RLV_TYPE_REMOVE
};
enum ERlvCmdRet {
RLV_RET_UNKNOWN = 0x0000, // Unknown error (should only be used internally)
RLV_RET_RETAINED, // Command was retained
RLV_RET_SUCCESS = 0x0100, // Command executed succesfully
RLV_RET_SUCCESS_UNSET, // Command executed succesfully (RLV_TYPE_REMOVE for an unrestricted behaviour)
RLV_RET_SUCCESS_DUPLICATE, // Command executed succesfully (RLV_TYPE_ADD for an already restricted behaviour)
RLV_RET_SUCCESS_DEPRECATED, // Command executed succesfully but has been marked as deprecated
RLV_RET_SUCCESS_DELAYED, // Command parsed valid but will execute at a later time
RLV_RET_FAILED = 0x0200, // Command failed (general failure)
RLV_RET_FAILED_SYNTAX, // Command failed (syntax error)
RLV_RET_FAILED_OPTION, // Command failed (invalid option)
RLV_RET_FAILED_PARAM, // Command failed (invalid param)
RLV_RET_FAILED_LOCK, // Command failed (command is locked by another object)
RLV_RET_FAILED_DISABLED, // Command failed (command disabled by user)
RLV_RET_FAILED_UNKNOWN, // Command failed (unknown command)
RLV_RET_FAILED_NOSHAREDROOT, // Command failed (missing #RLV)
RLV_RET_FAILED_DEPRECATED, // Command failed (deprecated and no longer supported)
RLV_RET_FAILED_NOBEHAVIOUR, // Command failed (force modifier on an object with no active restrictions)
RLV_RET_FAILED_UNHELDBEHAVIOUR, // Command failed (local modifier on an object that doesn't hold the base behaviour)
RLV_RET_FAILED_BLOCKED, // Command failed (object is blocked)
RLV_RET_FAILED_THROTTLED, // Command failed (throttled)
RLV_RET_NO_PROCESSOR // Command doesn't have a template processor define (legacy code)
};
#define RLV_RET_SUCCEEDED(eCmdRet) (((eCmdRet) & RLV_RET_SUCCESS) == RLV_RET_SUCCESS)
enum class ERlvExceptionCheck
{
Permissive, // Exception can be set by any object
Strict, // Exception must be set by all objects holding the restriction
Default, // Permissive or strict will be determined by currently enforced restrictions
};
enum ERlvLockMask
{
RLV_LOCK_NONE = 0x00,
RLV_LOCK_ADD = 0x01,
RLV_LOCK_REMOVE = 0x02,
RLV_LOCK_ANY = RLV_LOCK_ADD | RLV_LOCK_REMOVE
};
enum ERlvWearMask
{
RLV_WEAR_LOCKED = 0x00, // User can not wear the item at all
RLV_WEAR_ADD = 0x01, // User can wear the item in addition to what's already worn
RLV_WEAR_REPLACE = 0x02, // User can wear the item and replace what's currently worn
RLV_WEAR = 0x03 // Convenience: combines RLV_WEAR_ADD and RLV_WEAR_REPLACE
};
enum ERlvAttachGroupType
{
RLV_ATTACHGROUP_HEAD = 0,
RLV_ATTACHGROUP_TORSO,
RLV_ATTACHGROUP_ARMS,
RLV_ATTACHGROUP_LEGS,
RLV_ATTACHGROUP_HUD,
RLV_ATTACHGROUP_COUNT,
RLV_ATTACHGROUP_INVALID
};
// ============================================================================
// Settings
//
namespace RlvSettingNames
{
#ifdef CATZNIP_STRINGVIEW
/*inline*/ constexpr boost::string_view Main = make_string_view("RestrainedLove");
/*inline*/ constexpr boost::string_view Debug = make_string_view("RestrainedLoveDebug");
/*inline*/ constexpr boost::string_view CanOoc = make_string_view("RestrainedLoveCanOOC");
/*inline*/ constexpr boost::string_view ForbidGiveToRlv = make_string_view("RestrainedLoveForbidGiveToRLV");
/*inline*/ constexpr boost::string_view NoSetEnv = make_string_view("RestrainedLoveNoSetEnv");
/*inline*/ constexpr boost::string_view ShowEllipsis = make_string_view("RestrainedLoveShowEllipsis");
/*inline*/ constexpr boost::string_view WearAddPrefix = make_string_view("RestrainedLoveStackWhenFolderBeginsWith");
/*inline*/ constexpr boost::string_view WearReplacePrefix = make_string_view("RestrainedLoveReplaceWhenFolderBeginsWith");
/*inline*/ constexpr boost::string_view DebugHideUnsetDup = make_string_view("RLVaDebugHideUnsetDuplicate");
/*inline*/ constexpr boost::string_view EnableIMQuery = make_string_view("RLVaEnableIMQuery");
/*inline*/ constexpr boost::string_view EnableLegacyNaming = make_string_view("RLVaEnableLegacyNaming");
/*inline*/ constexpr boost::string_view EnableSharedWear = make_string_view("RLVaEnableSharedWear");
/*inline*/ constexpr boost::string_view EnableTempAttach = make_string_view("RLVaEnableTemporaryAttachments");
/*inline*/ constexpr boost::string_view HideLockedLayer = make_string_view("RLVaHideLockedLayers");
/*inline*/ constexpr boost::string_view HideLockedAttach = make_string_view("RLVaHideLockedAttachments");
/*inline*/ constexpr boost::string_view HideLockedInventory = make_string_view("RLVaHideLockedInventory");
/*inline*/ constexpr boost::string_view LoginLastLocation = make_string_view("RLVaLoginLastLocation");
/*inline*/ constexpr boost::string_view SharedInvAutoRename = make_string_view("RLVaSharedInvAutoRename");
/*inline*/ constexpr boost::string_view ShowAssertionFail = make_string_view("RLVaShowAssertionFailures");
/*inline*/ constexpr boost::string_view ShowRedirectChatTyping = make_string_view("RLVaShowRedirectChatTyping");
/*inline*/ constexpr boost::string_view SplitRedirectChat = make_string_view("RLVaSplitRedirectChat");
/*inline*/ constexpr boost::string_view TopLevelMenu = make_string_view("RLVaTopLevelMenu");
/*inline*/ constexpr boost::string_view WearReplaceUnlocked = make_string_view("RLVaWearReplaceUnlocked");
#else
constexpr const char Main[] = "RestrainedLove";
constexpr const char Debug[] = "RestrainedLoveDebug";
constexpr const char CanOoc[] = "RestrainedLoveCanOOC";
constexpr const char ForbidGiveToRlv[] = "RestrainedLoveForbidGiveToRLV";
constexpr const char NoSetEnv[] = "RestrainedLoveNoSetEnv";
constexpr const char ShowEllipsis[] = "RestrainedLoveShowEllipsis";
constexpr const char WearAddPrefix[] = "RestrainedLoveStackWhenFolderBeginsWith";
constexpr const char WearReplacePrefix[] = "RestrainedLoveReplaceWhenFolderBeginsWith";
constexpr const char DebugHideUnsetDup[] = "RLVaDebugHideUnsetDuplicate";
constexpr const char EnableIMQuery[] = "RLVaEnableIMQuery";
constexpr const char EnableLegacyNaming[] = "RLVaEnableLegacyNaming";
constexpr const char EnableSharedWear[] = "RLVaEnableSharedWear";
constexpr const char EnableTempAttach[] = "RLVaEnableTemporaryAttachments";
constexpr const char HideLockedLayer[] = "RLVaHideLockedLayers";
constexpr const char HideLockedAttach[] = "RLVaHideLockedAttachments";
constexpr const char HideLockedInventory[] = "RLVaHideLockedInventory";
constexpr const char LoginLastLocation[] = "RLVaLoginLastLocation";
constexpr const char SharedInvAutoRename[] = "RLVaSharedInvAutoRename";
constexpr const char ShowAssertionFail[] = "RLVaShowAssertionFailures";
constexpr const char ShowRedirectChatTyping[] = "RLVaShowRedirectChatTyping";
constexpr const char SplitRedirectChat[] = "RLVaSplitRedirectChat";
constexpr const char TopLevelMenu[] = "RLVaTopLevelMenu";
constexpr const char WearReplaceUnlocked[] = "RLVaWearReplaceUnlocked";
#endif // CATZNIP_STRINGVIEW
}
// ============================================================================
// Strings (see rlva_strings.xml)
//
namespace RlvStringKeys
{
namespace Blocked
{
#ifdef CATZNIP_STRINGVIEW
/*inline*/ constexpr boost::string_view AutoPilot = make_string_view("blocked_autopilot");
/*inline*/ constexpr boost::string_view Generic = make_string_view("blocked_generic");
/*inline*/ constexpr boost::string_view GroupChange = make_string_view("blocked_groupchange");
/*inline*/ constexpr boost::string_view InvFolder = make_string_view("blocked_invfolder");
/*inline*/ constexpr boost::string_view PermissionAttach = make_string_view("blocked_permattach");
/*inline*/ constexpr boost::string_view PermissionTeleport = make_string_view("blocked_permteleport");
/*inline*/ constexpr boost::string_view RecvIm = make_string_view("blocked_recvim");
/*inline*/ constexpr boost::string_view RecvImRemote = make_string_view("blocked_recvim_remote");
/*inline*/ constexpr boost::string_view SendIm = make_string_view("blocked_sendim");
/*inline*/ constexpr boost::string_view Share = make_string_view("blocked_share");
/*inline*/ constexpr boost::string_view ShareGeneric = make_string_view("blocked_share_generic");
/*inline*/ constexpr boost::string_view StartConference = make_string_view("blocked_startconf");
/*inline*/ constexpr boost::string_view StartIm = make_string_view("blocked_startim");
/*inline*/ constexpr boost::string_view Teleport = make_string_view("blocked_teleport");
/*inline*/ constexpr boost::string_view TeleportOffer = make_string_view("blocked_teleport_offer");
/*inline*/ constexpr boost::string_view TpLureRequestRemote = make_string_view("blocked_tplurerequest_remote");
/*inline*/ constexpr boost::string_view ViewXxx = make_string_view("blocked_viewxxx");
/*inline*/ constexpr boost::string_view Wireframe = make_string_view("blocked_wireframe");
#else
constexpr const char AutoPilot[] = "blocked_autopilot";
constexpr const char Generic[] = "blocked_generic";
constexpr const char GroupChange[] = "blocked_groupchange";
constexpr const char InvFolder[] = "blocked_invfolder";
constexpr const char PermissionAttach[] = "blocked_permattach";
constexpr const char PermissionTeleport[] = "blocked_permteleport";
constexpr const char RecvIm[] = "blocked_recvim";
constexpr const char RecvImRemote[] = "blocked_recvim_remote";
constexpr const char SendIm[] = "blocked_sendim";
constexpr const char Share[] = "blocked_share";
constexpr const char ShareGeneric[] = "blocked_share_generic";
constexpr const char StartConference[] = "blocked_startconf";
constexpr const char StartIm[] = "blocked_startim";
constexpr const char Teleport[] = "blocked_teleport";
constexpr const char TeleportOffer[] = "blocked_teleport_offer";
constexpr const char TpLureRequestRemote[] = "blocked_tplurerequest_remote";
constexpr const char ViewXxx[] = "blocked_viewxxx";
constexpr const char Wireframe[] = "blocked_wireframe";
#endif // CATZNIP_STRINGVIEW
}
namespace Hidden
{
#ifdef CATZNIP_STRINGVIEW
/*inline*/ constexpr boost::string_view Generic = make_string_view("hidden_generic");
/*inline*/ constexpr boost::string_view Parcel = make_string_view("hidden_parcel");
/*inline*/ constexpr boost::string_view Region = make_string_view("hidden_region");
#else
constexpr const char Generic[] = "hidden_generic";
constexpr const char Parcel[] = "hidden_parcel";
constexpr const char Region[] = "hidden_region";
#endif // CATZNIP_STRINGVIEW
}
namespace StopIm
{
#ifdef CATZNIP_STRINGVIEW
/*inline*/ constexpr boost::string_view NoSession = make_string_view("stopim_nosession");
/*inline*/ constexpr boost::string_view EndSessionRemote = make_string_view("stopim_endsession_remote");
/*inline*/ constexpr boost::string_view EndSessionLocal = make_string_view("stopim_endsession_local");
#else
constexpr const char NoSession[] = "stopim_nosession";
constexpr const char EndSessionRemote[] = "stopim_endsession_remote";
constexpr const char EndSessionLocal[] = "stopim_endsession_local";
#endif // CATZNIP_STRINGVIEW
}
}
// ============================================================================