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