llregionflags.h

Go to the documentation of this file.
00001 
00032 #ifndef LL_LLREGIONFLAGS_H
00033 #define LL_LLREGIONFLAGS_H
00034 
00035 // Can you be hurt here? Should health be on?
00036 const U32 REGION_FLAGS_ALLOW_DAMAGE                             = (1 << 0);
00037 
00038 // Can you make landmarks here?
00039 const U32 REGION_FLAGS_ALLOW_LANDMARK                   = (1 << 1);
00040 
00041 // Do we reset the home position when someone teleports away from here?
00042 const U32 REGION_FLAGS_ALLOW_SET_HOME                   = (1 << 2);
00043 
00044 // Do we reset the home position when someone teleports away from here?
00045 const U32 REGION_FLAGS_RESET_HOME_ON_TELEPORT   = (1 << 3);
00046 
00047 // Does the sun move?
00048 const U32 REGION_FLAGS_SUN_FIXED                                = (1 << 4);
00049 
00050 // Tax free zone (no taxes on objects, land, etc.)
00051 const U32 REGION_FLAGS_TAX_FREE                                 = (1 << 5);
00052 
00053 // Can't change the terrain heightfield, even on owned parcels,
00054 // but can plant trees and grass.
00055 const U32 REGION_FLAGS_BLOCK_TERRAFORM                  = (1 << 6);
00056 
00057 // Can't release, sell, or buy land.
00058 const U32 REGION_FLAGS_BLOCK_LAND_RESELL                = (1 << 7);
00059 
00060 // All content wiped once per night
00061 const U32 REGION_FLAGS_SANDBOX                                  = (1 << 8);
00062 const U32 REGION_FLAGS_NULL_LAYER                               = (1 << 9);
00063 const U32 REGION_FLAGS_SKIP_AGENT_ACTION                = (1 << 10);
00064 const U32 REGION_FLAGS_SKIP_UPDATE_INTEREST_LIST= (1 << 11);
00065 const U32 REGION_FLAGS_SKIP_COLLISIONS                  = (1 << 12); // Pin all non agent rigid bodies
00066 const U32 REGION_FLAGS_SKIP_SCRIPTS                             = (1 << 13);
00067 const U32 REGION_FLAGS_SKIP_PHYSICS                             = (1 << 14); // Skip all physics
00068 const U32 REGION_FLAGS_EXTERNALLY_VISIBLE               = (1 << 15);
00069 //const U32 REGION_FLAGS_MAINLAND_VISIBLE                       = (1 << 16);
00070 const U32 REGION_FLAGS_PUBLIC_ALLOWED                   = (1 << 17);
00071 const U32 REGION_FLAGS_BLOCK_DWELL                              = (1 << 18);
00072 
00073 // Is flight allowed?
00074 const U32 REGION_FLAGS_BLOCK_FLY                                = (1 << 19);    
00075 
00076 // Is direct teleport (p2p) allowed?
00077 const U32 REGION_FLAGS_ALLOW_DIRECT_TELEPORT    = (1 << 20);
00078 
00079 // Is there an administrative override on scripts in the region at the
00080 // moment. This is the similar skip scripts, except this flag is
00081 // presisted in the database on an estate level.
00082 const U32 REGION_FLAGS_ESTATE_SKIP_SCRIPTS              = (1 << 21);
00083 
00084 const U32 REGION_FLAGS_RESTRICT_PUSHOBJECT              = (1 << 22);
00085 
00086 const U32 REGION_FLAGS_DENY_ANONYMOUS                   = (1 << 23);
00087 const U32 REGION_FLAGS_DENY_IDENTIFIED                  = (1 << 24);
00088 const U32 REGION_FLAGS_DENY_TRANSACTED                  = (1 << 25);
00089 
00090 const U32 REGION_FLAGS_ALLOW_PARCEL_CHANGES             = (1 << 26);
00091 
00092 const U32 REGION_FLAGS_ABUSE_EMAIL_TO_ESTATE_OWNER = (1 << 27);
00093 
00094 const U32 REGION_FLAGS_ALLOW_VOICE = (1 << 28);
00095 
00096 const U32 REGION_FLAGS_BLOCK_PARCEL_SEARCH = (1 << 29);
00097 
00098 
00099 const U32 REGION_FLAGS_DEFAULT = REGION_FLAGS_ALLOW_LANDMARK |
00100                                                                  REGION_FLAGS_ALLOW_SET_HOME |
00101                                  REGION_FLAGS_ALLOW_PARCEL_CHANGES |
00102                                  REGION_FLAGS_ALLOW_VOICE;
00103 
00104 
00105 const U32 REGION_FLAGS_PRELUDE_SET = REGION_FLAGS_RESET_HOME_ON_TELEPORT;
00106 const U32 REGION_FLAGS_PRELUDE_UNSET = REGION_FLAGS_ALLOW_LANDMARK 
00107                                                                            | REGION_FLAGS_ALLOW_SET_HOME;
00108 
00109 const U32 REGION_FLAGS_ESTATE_MASK = REGION_FLAGS_EXTERNALLY_VISIBLE
00110                                                                          | REGION_FLAGS_PUBLIC_ALLOWED  
00111                                                                          | REGION_FLAGS_SUN_FIXED
00112                                                                          | REGION_FLAGS_DENY_ANONYMOUS
00113                                                                          | REGION_FLAGS_DENY_IDENTIFIED
00114                                                                          | REGION_FLAGS_DENY_TRANSACTED;
00115 
00116 inline BOOL is_prelude( U32 flags )
00117 {
00118         // definition of prelude does not depend on fixed-sun
00119         return 0 == (flags & REGION_FLAGS_PRELUDE_UNSET)
00120                    && 0 != (flags & REGION_FLAGS_PRELUDE_SET);
00121 }
00122 
00123 inline U32 set_prelude_flags(U32 flags)
00124 {
00125         // also set the sun-fixed flag
00126         return ((flags & ~REGION_FLAGS_PRELUDE_UNSET)
00127                         | (REGION_FLAGS_PRELUDE_SET | REGION_FLAGS_SUN_FIXED));
00128 }
00129 
00130 inline U32 unset_prelude_flags(U32 flags)
00131 {
00132         // also unset the fixed-sun flag
00133         return ((flags | REGION_FLAGS_PRELUDE_UNSET) 
00134                         & ~(REGION_FLAGS_PRELUDE_SET | REGION_FLAGS_SUN_FIXED));
00135 }
00136 
00137 // estate constants. Need to match first few etries in indra.estate table.
00138 const U32 ESTATE_ALL = 0; // will not match in db, reserved key for logic
00139 const U32 ESTATE_MAINLAND = 1;
00140 const U32 ESTATE_ORIENTATION = 2;
00141 const U32 ESTATE_INTERNAL = 3;
00142 const U32 ESTATE_SHOWCASE = 4;
00143 const U32 ESTATE_KIDGRID = 5;
00144 const U32 ESTATE_LAST_LINDEN = 5; // last linden owned/managed estate
00145 
00146 // for EstateOwnerRequest, setaccess message
00147 const U32 ESTATE_ACCESS_ALLOWED_AGENTS  = 1 << 0;
00148 const U32 ESTATE_ACCESS_ALLOWED_GROUPS  = 1 << 1;
00149 const U32 ESTATE_ACCESS_BANNED_AGENTS   = 1 << 2;
00150 const U32 ESTATE_ACCESS_MANAGERS                = 1 << 3;
00151 
00152 //maximum number of access list entries we can fit in one packet
00153 const S32 ESTATE_ACCESS_MAX_ENTRIES_PER_PACKET = 63;
00154 
00155 // for reply to "getinfo", don't need to forward to all sims in estate
00156 const U32 ESTATE_ACCESS_SEND_TO_AGENT_ONLY = 1 << 4;
00157 
00158 const U32 ESTATE_ACCESS_ALL = ESTATE_ACCESS_ALLOWED_AGENTS
00159                                                           | ESTATE_ACCESS_ALLOWED_GROUPS
00160                                                           | ESTATE_ACCESS_BANNED_AGENTS
00161                                                           | ESTATE_ACCESS_MANAGERS;
00162 
00163 // for EstateOwnerRequest, estateaccessdelta message
00164 const U32 ESTATE_ACCESS_APPLY_TO_ALL_ESTATES            = 1 << 0;
00165 const U32 ESTATE_ACCESS_APPLY_TO_MANAGED_ESTATES        = 1 << 1;
00166 
00167 const U32 ESTATE_ACCESS_ALLOWED_AGENT_ADD                       = 1 << 2;
00168 const U32 ESTATE_ACCESS_ALLOWED_AGENT_REMOVE            = 1 << 3;
00169 const U32 ESTATE_ACCESS_ALLOWED_GROUP_ADD                       = 1 << 4;
00170 const U32 ESTATE_ACCESS_ALLOWED_GROUP_REMOVE            = 1 << 5;
00171 const U32 ESTATE_ACCESS_BANNED_AGENT_ADD                        = 1 << 6;
00172 const U32 ESTATE_ACCESS_BANNED_AGENT_REMOVE                     = 1 << 7;
00173 const U32 ESTATE_ACCESS_MANAGER_ADD                                     = 1 << 8;
00174 const U32 ESTATE_ACCESS_MANAGER_REMOVE                          = 1 << 9;
00175 
00176 const S32 ESTATE_MAX_MANAGERS = 10;
00177 const S32 ESTATE_MAX_ACCESS_IDS = 300;  // max for access, banned
00178 const S32 ESTATE_MAX_GROUP_IDS = (S32) ESTATE_ACCESS_MAX_ENTRIES_PER_PACKET;
00179 
00180 // 'Sim Wide Delete' flags
00181 const U32 SWD_OTHERS_LAND_ONLY          = (1 << 0);
00182 const U32 SWD_ALWAYS_RETURN_OBJECTS = (1 << 1);
00183 const U32 SWD_SCRIPTED_ONLY                     = (1 << 2);
00184 
00185 #endif
00186 
00187 

Generated on Thu Jul 1 06:09:04 2010 for Second Life Viewer by  doxygen 1.4.7