indra_constants.h

Go to the documentation of this file.
00001 
00032 #ifndef LL_INDRA_CONSTANTS_H
00033 #define LL_INDRA_CONSTANTS_H
00034 
00035 #include "stdtypes.h"
00036 #include "lluuid.h"
00037 
00038 // At 45 Hz collisions seem stable and objects seem
00039 // to settle down at a reasonable rate.
00040 // JC 3/18/2003
00041 const F32 PHYSICS_TIMESTEP = 1.f / 45.f;
00042 
00043 const F32 COLLISION_TOLERANCE = 0.1f;
00044 const F32 HALF_COLLISION_TOLERANCE = COLLISION_TOLERANCE * 0.5f;
00045 
00046 // Time constants
00047 const U32 HOURS_PER_LINDEN_DAY          = 4;    
00048 const U32 DAYS_PER_LINDEN_YEAR          = 11;
00049 
00050 const U32 SEC_PER_LINDEN_DAY            = HOURS_PER_LINDEN_DAY * 60 * 60;
00051 const U32 SEC_PER_LINDEN_YEAR           = DAYS_PER_LINDEN_YEAR * SEC_PER_LINDEN_DAY;
00052 
00053 const F32 REGION_WIDTH_METERS = 256.f;
00054 const S32 REGION_WIDTH_UNITS = 256;
00055 const U32 REGION_WIDTH_U32 = 256;
00056 
00057 const F32 REGION_HEIGHT_METERS = 4096.f;
00058 
00059 // Bits for simulator performance query flags
00060 enum LAND_STAT_FLAGS
00061 {
00062         STAT_FILTER_BY_PARCEL   = 0x00000001,
00063         STAT_FILTER_BY_OWNER    = 0x00000002,
00064         STAT_FILTER_BY_OBJECT   = 0x00000004,
00065         STAT_REQUEST_LAST_ENTRY = 0x80000000,
00066 };
00067 
00068 enum LAND_STAT_REPORT_TYPE
00069 {
00070         STAT_REPORT_TOP_SCRIPTS = 0,
00071         STAT_REPORT_TOP_COLLIDERS
00072 };
00073 
00074 const U32 STAT_FILTER_MASK      = 0x1FFFFFFF;
00075 
00076 // Default maximum number of tasks/prims per region.
00077 const U32 MAX_TASKS_PER_REGION = 15000;
00078 
00079 const   F32     MIN_AGENT_DEPTH                 = 0.30f;
00080 const   F32     DEFAULT_AGENT_DEPTH     = 0.45f;
00081 const   F32     MAX_AGENT_DEPTH                 = 0.60f;
00082 
00083 const   F32     MIN_AGENT_WIDTH                 = 0.40f;
00084 const   F32     DEFAULT_AGENT_WIDTH     = 0.60f;
00085 const   F32     MAX_AGENT_WIDTH                 = 0.80f;
00086 
00087 const   F32     MIN_AGENT_HEIGHT                = 1.3f - 2.0f * COLLISION_TOLERANCE;
00088 const   F32     DEFAULT_AGENT_HEIGHT    = 1.9f;
00089 const   F32     MAX_AGENT_HEIGHT                = 2.65f - 2.0f * COLLISION_TOLERANCE;
00090 
00091 // For linked sets
00092 const S32 MAX_CHILDREN_PER_TASK = 255;
00093 const S32 MAX_CHILDREN_PER_PHYSICAL_TASK = 32;
00094 
00095 const S32 MAX_JOINTS_PER_OBJECT = 1;    // limiting to 1 until Havok 2.x
00096 
00097 const   char* const     DEFAULT_DMZ_SPACE_SERVER        = "192.168.0.140";
00098 const   char* const     DEFAULT_DMZ_USER_SERVER         = "192.168.0.140";
00099 const   char* const     DEFAULT_DMZ_DATA_SERVER         = "192.168.0.140";
00100 const   char* const     DEFAULT_DMZ_ASSET_SERVER        = "http://asset.dmz.lindenlab.com:80";
00101 
00102 const   char* const     DEFAULT_AGNI_SPACE_SERVER       = "63.211.139.100";
00103 const   char* const     DEFAULT_AGNI_USER_SERVER        = "63.211.139.100";
00104 const   char* const     DEFAULT_AGNI_DATA_SERVER        = "63.211.139.100";
00105 const   char* const     DEFAULT_AGNI_ASSET_SERVER       = "http://asset.agni.lindenlab.com:80";
00106 
00107 // Information about what ports are for what services is in the wiki Name Space Ports page
00108 const   char* const DEFAULT_LOCAL_ASSET_SERVER  = "http://localhost:12041/asset/tmp";
00109 const   char* const     LOCAL_ASSET_URL_FORMAT          = "http://%s:12041/asset";
00110 
00111 const   U32             DEFAULT_LAUNCHER_PORT                   = 12029;
00112 //const U32             DEFAULT_BIGBOARD_PORT                   = 12030; // Deprecated
00113 //const U32             DEFAULT_QUERYSIM_PORT                   = 12031; // Deprecated
00114 const   U32             DEFAULT_DATA_SERVER_PORT                = 12032;
00115 const   U32             DEFAULT_SPACE_SERVER_PORT               = 12033;
00116 const   U32             DEFAULT_VIEWER_PORT                             = 12034;
00117 const   U32             DEFAULT_SIMULATOR_PORT                  = 12035;
00118 const   U32             DEFAULT_USER_SERVER_PORT                = 12036;
00119 const   U32             DEFAULT_RPC_SERVER_PORT                 = 12037;
00120 const   U32             DEFAULT_LOG_DATA_SERVER_PORT    = 12039;
00121 const   U32             DEFAULT_BACKBONE_PORT                   = 12040;
00122 const   U32             DEFAULT_LOCAL_ASSET_PORT                = 12041;
00123 //const   U32           DEFAULT_BACKBONE_CAP_PORT               = 12042; // Deprecated
00124 const   U32             DEFAULT_CAP_PROXY_PORT                  = 12043;
00125 const   U32             DEFAULT_INV_DATA_SERVER_PORT    = 12044;
00126 const   U32             DEFAULT_CGI_SERVICES_PORT               = 12045;
00127 
00128 // For automatic port discovery when running multiple viewers on one host
00129 const   U32             PORT_DISCOVERY_RANGE_MIN                = 13000;
00130 const   U32             PORT_DISCOVERY_RANGE_MAX                = PORT_DISCOVERY_RANGE_MIN + 50;
00131 
00132 const   char    LAND_LAYER_CODE                                 = 'L';
00133 const   char    WATER_LAYER_CODE                                = 'W';
00134 const   char    WIND_LAYER_CODE                                 = '7';
00135 const   char    CLOUD_LAYER_CODE                                = '8';
00136 
00137 // keys
00138 // Bit masks for various keyboard modifier keys.
00139 const MASK MASK_NONE =                  0x0000;
00140 const MASK MASK_CONTROL =               0x0001;         // Mapped to cmd on Macs
00141 const MASK MASK_ALT =                   0x0002;
00142 const MASK MASK_SHIFT =                 0x0004;
00143 const MASK MASK_NORMALKEYS =    0x0007;     // A real mask - only get the bits for normal modifier keys
00144 const MASK MASK_MAC_CONTROL =   0x0008;         // Un-mapped Ctrl key on Macs, not used on Windows
00145 const MASK MASK_MODIFIERS =             MASK_CONTROL|MASK_ALT|MASK_SHIFT|MASK_MAC_CONTROL;
00146 
00147 // Special keys go into >128
00148 const KEY KEY_SPECIAL = 0x80;   // special keys start here
00149 const KEY KEY_RETURN =  0x81;
00150 const KEY KEY_LEFT =    0x82;
00151 const KEY KEY_RIGHT =   0x83;
00152 const KEY KEY_UP =              0x84;
00153 const KEY KEY_DOWN =    0x85;
00154 const KEY KEY_ESCAPE =  0x86;
00155 const KEY KEY_BACKSPACE =0x87;
00156 const KEY KEY_DELETE =  0x88;
00157 const KEY KEY_SHIFT =   0x89;
00158 const KEY KEY_CONTROL = 0x8A;
00159 const KEY KEY_ALT =             0x8B;
00160 const KEY KEY_HOME =    0x8C;
00161 const KEY KEY_END =             0x8D;
00162 const KEY KEY_PAGE_UP = 0x8E;
00163 const KEY KEY_PAGE_DOWN = 0x8F;
00164 const KEY KEY_HYPHEN = 0x90;
00165 const KEY KEY_EQUALS = 0x91;
00166 const KEY KEY_INSERT = 0x92;
00167 const KEY KEY_CAPSLOCK = 0x93;
00168 const KEY KEY_TAB =             0x94;
00169 const KEY KEY_ADD =     0x95;
00170 const KEY KEY_SUBTRACT =0x96;
00171 const KEY KEY_MULTIPLY =0x97;
00172 const KEY KEY_DIVIDE =  0x98;
00173 const KEY KEY_F1                = 0xA1;
00174 const KEY KEY_F2                = 0xA2;
00175 const KEY KEY_F3                = 0xA3;
00176 const KEY KEY_F4                = 0xA4;
00177 const KEY KEY_F5                = 0xA5;
00178 const KEY KEY_F6                = 0xA6;
00179 const KEY KEY_F7                = 0xA7;
00180 const KEY KEY_F8                = 0xA8;
00181 const KEY KEY_F9                = 0xA9;
00182 const KEY KEY_F10               = 0xAA;
00183 const KEY KEY_F11               = 0xAB;
00184 const KEY KEY_F12               = 0xAC;
00185 
00186 const KEY KEY_PAD_UP            = 0xC0;
00187 const KEY KEY_PAD_DOWN          = 0xC1;
00188 const KEY KEY_PAD_LEFT          = 0xC2;
00189 const KEY KEY_PAD_RIGHT         = 0xC3;
00190 const KEY KEY_PAD_HOME          = 0xC4;
00191 const KEY KEY_PAD_END           = 0xC5;
00192 const KEY KEY_PAD_PGUP          = 0xC6;
00193 const KEY KEY_PAD_PGDN          = 0xC7;
00194 const KEY KEY_PAD_CENTER        = 0xC8; // the 5 in the middle
00195 const KEY KEY_PAD_INS           = 0xC9;
00196 const KEY KEY_PAD_DEL           = 0xCA;
00197 const KEY KEY_PAD_RETURN        = 0xCB;
00198 const KEY KEY_PAD_ADD           = 0xCC; // not used
00199 const KEY KEY_PAD_SUBTRACT      = 0xCD; // not used
00200 const KEY KEY_PAD_MULTIPLY  = 0xCE; // not used
00201 const KEY KEY_PAD_DIVIDE        = 0xCF; // not used
00202 
00203 const KEY KEY_BUTTON0   = 0xD0;
00204 const KEY KEY_BUTTON1   = 0xD1;
00205 const KEY KEY_BUTTON2   = 0xD2;
00206 const KEY KEY_BUTTON3   = 0xD3;
00207 const KEY KEY_BUTTON4   = 0xD4;
00208 const KEY KEY_BUTTON5   = 0xD5;
00209 const KEY KEY_BUTTON6   = 0xD6;
00210 const KEY KEY_BUTTON7   = 0xD7;
00211 const KEY KEY_BUTTON8   = 0xD8;
00212 const KEY KEY_BUTTON9   = 0xD9;
00213 const KEY KEY_BUTTON10  = 0xDA;
00214 const KEY KEY_BUTTON11  = 0xDB;
00215 const KEY KEY_BUTTON12  = 0xDC;
00216 const KEY KEY_BUTTON13  = 0xDD;
00217 const KEY KEY_BUTTON14  = 0xDE;
00218 const KEY KEY_BUTTON15  = 0xDF;
00219 
00220 const KEY KEY_NONE =    0xFF; // not sent from keyboard.  For internal use only.
00221 
00222 const S32 KEY_COUNT = 256;
00223 
00224 
00225 const F32 DEFAULT_WATER_HEIGHT  = 20.0f;
00226 
00227 // Maturity ratings for simulators
00228 const U8 SIM_ACCESS_MIN         = 0;
00229 const U8 SIM_ACCESS_TRIAL       = 7;
00230 const U8 SIM_ACCESS_PG          = 13;
00231 const U8 SIM_ACCESS_MATURE      = 21;
00232 const U8 SIM_ACCESS_DOWN        = 254;
00233 const U8 SIM_ACCESS_MAX         = SIM_ACCESS_MATURE;
00234 
00235 // group constants
00236 const S32 MAX_AGENT_GROUPS = 25;
00237 
00238 // god levels
00239 const U8 GOD_MAINTENANCE = 250;
00240 const U8 GOD_FULL = 200;
00241 const U8 GOD_LIAISON = 150;
00242 const U8 GOD_CUSTOMER_SERVICE = 100;
00243 const U8 GOD_LIKE = 1;
00244 const U8 GOD_NOT = 0;
00245 
00246 // "agent id" for things that should be done to ALL agents
00247 const LLUUID LL_UUID_ALL_AGENTS("44e87126-e794-4ded-05b3-7c42da3d5cdb");
00248 
00249 // Governor Linden's agent id.
00250 const LLUUID GOVERNOR_LINDEN_ID("3d6181b0-6a4b-97ef-18d8-722652995cf1");
00251 const LLUUID REALESTATE_LINDEN_ID("3d6181b0-6a4b-97ef-18d8-722652995cf1");
00252 // Maintenance's group id.
00253 const LLUUID MAINTENANCE_GROUP_ID("dc7b21cd-3c89-fcaa-31c8-25f9ffd224cd");
00254 
00255 // Flags for kick message
00256 const U32 KICK_FLAGS_DEFAULT    = 0x0;
00257 const U32 KICK_FLAGS_FREEZE             = 1 << 0;
00258 const U32 KICK_FLAGS_UNFREEZE   = 1 << 1;
00259 
00260 const U8 UPD_NONE               = 0x00;
00261 const U8 UPD_POSITION           = 0x01;
00262 const U8 UPD_ROTATION           = 0x02;
00263 const U8 UPD_SCALE              = 0x04;
00264 const U8 UPD_LINKED_SETS        = 0x08;
00265 const U8 UPD_UNIFORM            = 0x10; // used with UPD_SCALE
00266 
00267 // Agent Update Flags (U8)
00268 const U8 AU_FLAGS_NONE                  = 0x00;
00269 const U8 AU_FLAGS_HIDETITLE             = 0x01;
00270 
00271 // start location constants
00272 const U32 START_LOCATION_ID_LAST                = 0;
00273 const U32 START_LOCATION_ID_HOME                = 1;
00274 const U32 START_LOCATION_ID_DIRECT              = 2;    // for direct teleport
00275 const U32 START_LOCATION_ID_PARCEL              = 3;    // for teleports to a parcel
00276 const U32 START_LOCATION_ID_TELEHUB     = 4;    // for teleports to a spawnpoint
00277 const U32 START_LOCATION_ID_URL                 = 5;
00278 const U32 START_LOCATION_ID_COUNT               = 6;
00279 
00280 // group constants
00281 const U32 GROUP_MIN_SIZE = 2;
00282 
00283 // radius within which a chat message is fully audible
00284 const F32 CHAT_WHISPER_RADIUS = 10.f;
00285 const F32 CHAT_NORMAL_RADIUS = 20.f;
00286 const F32 CHAT_SHOUT_RADIUS = 100.f;
00287 const F32 CHAT_MAX_RADIUS = CHAT_SHOUT_RADIUS;
00288 const F32 CHAT_MAX_RADIUS_BY_TWO = CHAT_MAX_RADIUS / 2.f;
00289 
00290 // this times above gives barely audible radius
00291 const F32 CHAT_BARELY_AUDIBLE_FACTOR = 2.0f;
00292 
00293 // distance in front of speaking agent the sphere is centered
00294 const F32 CHAT_WHISPER_OFFSET = 5.f;
00295 const F32 CHAT_NORMAL_OFFSET = 10.f;
00296 const F32 CHAT_SHOUT_OFFSET = 50.f;
00297 
00298 // first clean starts at 3 AM
00299 const S32 SANDBOX_FIRST_CLEAN_HOUR = 3;
00300 // clean every <n> hours
00301 const S32 SANDBOX_CLEAN_FREQ = 12;
00302 
00303 const F32 WIND_SCALE_HACK               = 2.0f; // hack to make wind speeds more realistic
00304 
00305 enum ETerrainBrushType
00306 {
00307         // the valid brush numbers cannot be reordered, because they 
00308         // are used in the binary LSL format as arguments to llModifyLand()
00309         E_LANDBRUSH_LEVEL       = 0,
00310         E_LANDBRUSH_RAISE       = 1,
00311         E_LANDBRUSH_LOWER       = 2,
00312         E_LANDBRUSH_SMOOTH      = 3,
00313         E_LANDBRUSH_NOISE       = 4,
00314         E_LANDBRUSH_REVERT      = 5,
00315         E_LANDBRUSH_INVALID = 6
00316 };
00317 
00318 // media commands
00319 const U32 PARCEL_MEDIA_COMMAND_STOP  = 0;
00320 const U32 PARCEL_MEDIA_COMMAND_PAUSE = 1;
00321 const U32 PARCEL_MEDIA_COMMAND_PLAY  = 2;
00322 const U32 PARCEL_MEDIA_COMMAND_LOOP  = 3;
00323 const U32 PARCEL_MEDIA_COMMAND_TEXTURE = 4;
00324 const U32 PARCEL_MEDIA_COMMAND_URL = 5;
00325 const U32 PARCEL_MEDIA_COMMAND_TIME = 6;
00326 const U32 PARCEL_MEDIA_COMMAND_AGENT = 7;
00327 const U32 PARCEL_MEDIA_COMMAND_UNLOAD = 8;
00328 const U32 PARCEL_MEDIA_COMMAND_AUTO_ALIGN = 9;
00329 const U32 PARCEL_MEDIA_COMMAND_TYPE = 10;
00330 const U32 PARCEL_MEDIA_COMMAND_SIZE = 11;
00331 const U32 PARCEL_MEDIA_COMMAND_DESC = 12;
00332 const U32 PARCEL_MEDIA_COMMAND_LOOP_SET = 13;
00333 
00334 // map item types
00335 const U32 MAP_ITEM_TELEHUB = 0x01;
00336 const U32 MAP_ITEM_PG_EVENT = 0x02;
00337 const U32 MAP_ITEM_MATURE_EVENT = 0x03;
00338 const U32 MAP_ITEM_POPULAR = 0x04;
00339 //const U32 MAP_ITEM_AGENT_COUNT = 0x05;
00340 const U32 MAP_ITEM_AGENT_LOCATIONS = 0x06;
00341 const U32 MAP_ITEM_LAND_FOR_SALE = 0x07;
00342 const U32 MAP_ITEM_CLASSIFIED = 0x08;
00343 
00344 // Crash reporter behavior
00345 const char* const CRASH_SETTINGS_FILE = "settings_crash_behavior.xml";
00346 const char* const CRASH_BEHAVIOR_SETTING = "CrashSubmitBehavior";
00347 const S32 CRASH_BEHAVIOR_ASK = 0;
00348 const S32 CRASH_BEHAVIOR_ALWAYS_SEND = 1;
00349 const S32 CRASH_BEHAVIOR_NEVER_SEND = 2;
00350 
00351 // Export/Import return values
00352 const S32 EXPORT_SUCCESS = 0;
00353 const S32 EXPORT_ERROR_PERMISSIONS = -1;
00354 const S32 EXPORT_ERROR_UNKNOWN = -2;
00355 
00356 // This is how long the sim will try to teleport you before giving up.
00357 const F32 TELEPORT_EXPIRY = 15.0f;
00358 // Additional time (in seconds) to wait per attachment
00359 const F32 TELEPORT_EXPIRY_PER_ATTACHMENT = 3.f;
00360 
00361 // The maximum size of an object extra parameters binary (packed) block
00362 #define MAX_OBJECT_PARAMS_SIZE 1024
00363 
00364 const S32 CHAT_CHANNEL_DEBUG = S32_MAX;
00365 
00366 // PLEASE don't add constants here.  Every dev will have to do
00367 // a complete rebuild.  Try to find another shared header file,
00368 // like llregionflags.h, lllslconstants.h, llagentconstants.h,
00369 // or create a new one.  JC
00370 
00371 #endif

Generated on Fri May 16 08:32:01 2008 for SecondLife by  doxygen 1.5.5