00001
00031 #ifndef LL_LLPARCEL_H
00032 #define LL_LLPARCEL_H
00033
00034 #include <time.h>
00035 #include <iostream>
00036
00037 #include "lluuid.h"
00038 #include "llparcelflags.h"
00039 #include "llpermissions.h"
00040 #include "v3math.h"
00041
00042
00043
00044 const F32 PARCEL_GRID_STEP_METERS = 4.f;
00045
00046
00047 const S32 PARCEL_UNIT_AREA = 16;
00048
00049
00050 const F32 PARCEL_HEIGHT = 50.f;
00051
00052
00053 const F32 BAN_HEIGHT = 768.f;
00054
00055
00056 const S32 PARCEL_MAX_ACCESS_LIST = 300;
00057
00058
00059 const F32 PARCEL_MAX_ENTRIES_PER_PACKET = 48.f;
00060
00061
00062 const S32 PARCEL_DIRECTORY_FEE = 30;
00063
00064 const S32 PARCEL_PASS_PRICE_DEFAULT = 10;
00065 const F32 PARCEL_PASS_HOURS_DEFAULT = 1.f;
00066
00067
00068
00069 const S32 PARCEL_OVERLAY_CHUNKS = 4;
00070
00071
00072 const U8 PARCEL_COLOR_MASK = 0x07;
00073 const U8 PARCEL_PUBLIC = 0x00;
00074 const U8 PARCEL_OWNED = 0x01;
00075 const U8 PARCEL_GROUP = 0x02;
00076 const U8 PARCEL_SELF = 0x03;
00077 const U8 PARCEL_FOR_SALE = 0x04;
00078 const U8 PARCEL_AUCTION = 0x05;
00079
00080
00081
00082
00083 const U8 PARCEL_SOUND_LOCAL = 0x20;
00084 const U8 PARCEL_WEST_LINE = 0x40;
00085 const U8 PARCEL_SOUTH_LINE = 0x80;
00086
00087
00088 const S32 PARCEL_RESULT_NO_DATA = -1;
00089 const S32 PARCEL_RESULT_SUCCESS = 0;
00090 const S32 PARCEL_RESULT_MULTIPLE = 1;
00091
00092 const S32 SELECTED_PARCEL_SEQ_ID = -10000;
00093 const S32 COLLISION_NOT_IN_GROUP_PARCEL_SEQ_ID = -20000;
00094 const S32 COLLISION_BANNED_PARCEL_SEQ_ID = -30000;
00095 const S32 COLLISION_NOT_ON_LIST_PARCEL_SEQ_ID = -40000;
00096 const S32 HOVERED_PARCEL_SEQ_ID = -50000;
00097
00098 const U32 RT_NONE = 0x1 << 0;
00099 const U32 RT_OWNER = 0x1 << 1;
00100 const U32 RT_GROUP = 0x1 << 2;
00101 const U32 RT_OTHER = 0x1 << 3;
00102 const U32 RT_LIST = 0x1 << 4;
00103 const U32 RT_SELL = 0x1 << 5;
00104
00105 class LLMessageSystem;
00106 class LLSD;
00107
00108 class LLAccessEntry
00109 {
00110 public:
00111 LLUUID mID;
00112 S32 mTime;
00113 U32 mFlags;
00114 };
00115
00116 typedef std::map<LLUUID,LLAccessEntry>::iterator access_map_iterator;
00117 typedef std::map<LLUUID,LLAccessEntry>::const_iterator access_map_const_iterator;
00118
00119 class LLParcel
00120 {
00121 public:
00122 enum EOwnershipStatus
00123 {
00124 OS_LEASED = 0,
00125 OS_LEASE_PENDING = 1,
00126 OS_ABANDONED = 2,
00127 OS_COUNT = 3,
00128 OS_NONE = -1
00129 };
00130 enum ECategory
00131 {
00132 C_NONE = 0,
00133 C_LINDEN,
00134 C_ADULT,
00135 C_ARTS,
00136 C_BUSINESS,
00137 C_EDUCATIONAL,
00138 C_GAMING,
00139 C_HANGOUT,
00140 C_NEWCOMER,
00141 C_PARK,
00142 C_RESIDENTIAL,
00143 C_SHOPPING,
00144 C_STAGE,
00145 C_OTHER,
00146 C_COUNT,
00147 C_ANY = -1
00148 };
00149 enum EAction
00150 {
00151 A_CREATE = 0,
00152 A_RELEASE = 1,
00153 A_ABSORB = 2,
00154 A_ABSORBED = 3,
00155 A_DIVIDE = 4,
00156 A_DIVISION = 5,
00157 A_ACQUIRE = 6,
00158 A_RELINQUISH = 7,
00159 A_CONFIRM = 8,
00160 A_COUNT = 9,
00161 A_UNKNOWN = -1
00162 };
00163
00164 enum ELandingType
00165 {
00166 L_NONE = 0,
00167 L_LANDING_POINT = 1,
00168 L_DIRECT = 2
00169 };
00170
00171
00172 LLParcel();
00173 LLParcel(
00174 const LLUUID &owner_id,
00175 BOOL modify,
00176 BOOL terraform,
00177 BOOL damage,
00178 time_t claim_date,
00179 S32 claim_price,
00180 S32 rent_price,
00181 S32 area,
00182 S32 sim_object_limit,
00183 F32 parcel_object_bonus,
00184 BOOL is_group_owned = FALSE);
00185 virtual ~LLParcel();
00186
00187 void init(
00188 const LLUUID &owner_id,
00189 BOOL modify,
00190 BOOL terraform,
00191 BOOL damage,
00192 time_t claim_date,
00193 S32 claim_price,
00194 S32 rent_price,
00195 S32 area,
00196 S32 sim_object_limit,
00197 F32 parcel_object_bonus,
00198 BOOL is_group_owned = FALSE);
00199
00200
00201 void overrideParcelFlags(U32 flags);
00202
00203 void overrideOwner(
00204 const LLUUID& owner_id,
00205 BOOL is_group_owned = FALSE);
00206 void overrideSaleTimerExpires(F32 secs_left) { mSaleTimerExpires.setTimerExpirySec(secs_left); }
00207
00208
00209 void generateNewID() { mID.generate(); }
00210 void setName(const LLString& name);
00211 void setDesc(const LLString& desc);
00212 void setMusicURL(const LLString& url);
00213 void setMediaURL(const LLString& url);
00214 void setMediaType(const char* type);
00215 void setMediaDesc(const char* desc);
00216 void setMediaID(const LLUUID& id) { mMediaID = id; }
00217 void setMediaAutoScale ( U8 flagIn ) { mMediaAutoScale = flagIn; }
00218 void setMediaLoop (U8 loop) { mMediaLoop = loop; }
00219 void setObscureMedia( U8 flagIn ) { mObscureMedia = flagIn; }
00220 void setObscureMusic( U8 flagIn ) { mObscureMusic = flagIn; }
00221 void setMediaWidth(S32 width);
00222 void setMediaHeight(S32 height);
00223 virtual void setLocalID(S32 local_id);
00224
00225
00226 void clearParcel();
00227
00228
00229
00230 void setInEscrow(bool in_escrow) { mInEscrow = in_escrow; }
00231
00232 void setAuthorizedBuyerID(const LLUUID& id) { mAuthBuyerID = id; }
00233
00234 void setCategory(ECategory category) { mCategory = category; }
00235 void setSnapshotID(const LLUUID& id) { mSnapshotID = id; }
00236 void setUserLocation(const LLVector3& pos) { mUserLocation = pos; }
00237 void setUserLookAt(const LLVector3& rot) { mUserLookAt = rot; }
00238 void setLandingType(const ELandingType type) { mLandingType = type; }
00239
00240 void setAuctionID(U32 auction_id) { mAuctionID = auction_id;}
00241
00242 void setAllParcelFlags(U32 flags);
00243 void setParcelFlag(U32 flag, BOOL b);
00244
00245 void setArea(S32 area, S32 sim_object_limit);
00246 void setDiscountRate(F32 rate);
00247
00248 void setAllowModify(BOOL b) { setParcelFlag(PF_CREATE_OBJECTS, b); }
00249 void setAllowGroupModify(BOOL b) { setParcelFlag(PF_CREATE_GROUP_OBJECTS, b); }
00250 void setAllowAllObjectEntry(BOOL b) { setParcelFlag(PF_ALLOW_ALL_OBJECT_ENTRY, b); }
00251 void setAllowGroupObjectEntry(BOOL b) { setParcelFlag(PF_ALLOW_GROUP_OBJECT_ENTRY, b); }
00252 void setAllowTerraform(BOOL b){setParcelFlag(PF_ALLOW_TERRAFORM, b); }
00253 void setAllowDamage(BOOL b) { setParcelFlag(PF_ALLOW_DAMAGE, b); }
00254 void setAllowFly(BOOL b) { setParcelFlag(PF_ALLOW_FLY, b); }
00255 void setAllowLandmark(BOOL b){ setParcelFlag(PF_ALLOW_LANDMARK, b); }
00256 void setAllowGroupScripts(BOOL b) { setParcelFlag(PF_ALLOW_GROUP_SCRIPTS, b); }
00257 void setAllowOtherScripts(BOOL b) { setParcelFlag(PF_ALLOW_OTHER_SCRIPTS, b); }
00258 void setAllowDeedToGroup(BOOL b) { setParcelFlag(PF_ALLOW_DEED_TO_GROUP, b); }
00259 void setContributeWithDeed(BOOL b) { setParcelFlag(PF_CONTRIBUTE_WITH_DEED, b); }
00260 void setForSale(BOOL b) { setParcelFlag(PF_FOR_SALE, b); }
00261 void setSoundOnly(BOOL b) { setParcelFlag(PF_SOUND_LOCAL, b); }
00262 void setDenyAnonymous(BOOL b) { setParcelFlag(PF_DENY_ANONYMOUS, b); }
00263 void setDenyAgeUnverified(BOOL b) { setParcelFlag(PF_DENY_AGEUNVERIFIED, b); }
00264 void setRestrictPushObject(BOOL b) { setParcelFlag(PF_RESTRICT_PUSHOBJECT, b); }
00265
00266 void setDrawDistance(F32 dist) { mDrawDistance = dist; }
00267 void setSalePrice(S32 price) { mSalePrice = price; }
00268 void setGroupID(const LLUUID& id) { mGroupID = id; }
00269
00270 void setPassPrice(S32 price) { mPassPrice = price; }
00271 void setPassHours(F32 hours) { mPassHours = hours; }
00272
00273 BOOL importStream(std::istream& input_stream);
00274 BOOL importAccessEntry(std::istream& input_stream, LLAccessEntry* entry);
00275 BOOL exportStream(std::ostream& output_stream);
00276
00277 void packMessage(LLMessageSystem* msg);
00278 void packMessage(LLSD& msg);
00279 void unpackMessage(LLMessageSystem* msg);
00280
00281 void packAccessEntries(LLMessageSystem* msg,
00282 const std::map<LLUUID,LLAccessEntry>& list);
00283 void unpackAccessEntries(LLMessageSystem* msg,
00284 std::map<LLUUID,LLAccessEntry>* list);
00285
00286 void setAABBMin(const LLVector3& min) { mAABBMin = min; }
00287 void setAABBMax(const LLVector3& max) { mAABBMax = max; }
00288
00289
00290 void extendAABB(const LLVector3& box_min, const LLVector3& box_max);
00291
00292 void dump();
00293
00294
00295
00296 void expirePasses(S32 now);
00297
00298
00299 BOOL addToAccessList(const LLUUID& agent_id, S32 time);
00300 BOOL addToBanList(const LLUUID& agent_id, S32 time);
00301 BOOL removeFromAccessList(const LLUUID& agent_id);
00302 BOOL removeFromBanList(const LLUUID& agent_id);
00303
00304
00305 const LLUUID& getID() const { return mID; }
00306 const LLString& getName() const { return mName; }
00307 const LLString& getDesc() const { return mDesc; }
00308 const LLString& getMusicURL() const { return mMusicURL; }
00309 const LLString& getMediaURL() const { return mMediaURL; }
00310 const char* getMediaDesc() const { return mMediaDesc.c_str(); }
00311 const char* getMediaType() const { return mMediaType.c_str(); }
00312 const LLUUID& getMediaID() const { return mMediaID; }
00313 S32 getMediaWidth() const { return mMediaWidth; }
00314 S32 getMediaHeight() const { return mMediaHeight; }
00315 U8 getMediaAutoScale() const { return mMediaAutoScale; }
00316 U8 getMediaLoop() const { return mMediaLoop; }
00317 U8 getObscureMedia() const { return mObscureMedia; }
00318 U8 getObscureMusic() const { return mObscureMusic; }
00319 S32 getLocalID() const { return mLocalID; }
00320 const LLUUID& getOwnerID() const { return mOwnerID; }
00321 const LLUUID& getGroupID() const { return mGroupID; }
00322 S32 getPassPrice() const { return mPassPrice; }
00323 F32 getPassHours() const { return mPassHours; }
00324 BOOL getIsGroupOwned() const { return mGroupOwned; }
00325
00326 U32 getAuctionID() const { return mAuctionID; }
00327 bool isInEscrow() const { return mInEscrow; }
00328
00329 BOOL isPublic() const;
00330
00331
00332 const LLVector3& getUserLocation() const { return mUserLocation; }
00333 const LLVector3& getUserLookAt() const { return mUserLookAt; }
00334 ELandingType getLandingType() const { return mLandingType; }
00335
00336
00337 const LLUUID& getSnapshotID() const { return mSnapshotID; }
00338
00339
00340
00341
00342 const LLUUID& getAuthorizedBuyerID() const { return mAuthBuyerID; }
00343
00344
00345 BOOL isBuyerAuthorized(const LLUUID& buyer_id) const;
00346
00347
00348
00349
00350
00351
00352
00353 EOwnershipStatus getOwnershipStatus() const { return mStatus; }
00354 static const char* getOwnershipStatusString(EOwnershipStatus status);
00355 void setOwnershipStatus(EOwnershipStatus status) { mStatus = status; }
00356
00357
00358 ECategory getCategory() const {return mCategory; }
00359 static const char* getCategoryString(ECategory category);
00360 static const char* getCategoryUIString(ECategory category);
00361 static ECategory getCategoryFromString(const char* string);
00362 static ECategory getCategoryFromUIString(const char* string);
00363
00364
00365 static const char* getActionString(EAction action);
00366
00367
00368
00369
00370
00371
00372 BOOL isSaleTimerExpired(const U64& time);
00373
00374 F32 getSaleTimerExpires() { return mSaleTimerExpires.getRemainingTimeF32(); }
00375
00376
00377
00378
00379
00380
00381 void startSale(const LLUUID& buyer_id, BOOL is_buyer_group);
00382
00383
00384
00385 void expireSale(U32& type, U8& flags, LLUUID& from_id, LLUUID& to_id);
00386 void completeSale(U32& type, U8& flags, LLUUID& to_id);
00387 void clearSale();
00388
00389
00390
00391 BOOL getRecordTransaction() const { return mRecordTransaction; }
00392 void setRecordTransaction(BOOL record) { mRecordTransaction = record; }
00393
00394
00395
00396 U32 getParcelFlags() const { return mParcelFlags; }
00397
00398 BOOL getParcelFlag(U32 flag) const
00399 { return (mParcelFlags & flag) ? TRUE : FALSE; }
00400
00401
00402 BOOL getAllowModify() const
00403 { return (mParcelFlags & PF_CREATE_OBJECTS) ? TRUE : FALSE; }
00404
00405
00406 BOOL getAllowGroupModify() const
00407 { return (mParcelFlags & PF_CREATE_GROUP_OBJECTS) ? TRUE : FALSE; }
00408
00409
00410 BOOL getAllowDeedToGroup() const
00411 { return (mParcelFlags & PF_ALLOW_DEED_TO_GROUP) ? TRUE : FALSE; }
00412
00413
00414 BOOL getContributeWithDeed() const
00415 { return (mParcelFlags & PF_CONTRIBUTE_WITH_DEED) ? TRUE : FALSE; }
00416
00417
00418 BOOL getAllowTerraform() const
00419 { return (mParcelFlags & PF_ALLOW_TERRAFORM) ? TRUE : FALSE; }
00420
00421
00422 BOOL getAllowDamage() const
00423 { return (mParcelFlags & PF_ALLOW_DAMAGE) ? TRUE : FALSE; }
00424
00425 BOOL getAllowFly() const
00426 { return (mParcelFlags & PF_ALLOW_FLY) ? TRUE : FALSE; }
00427
00428 BOOL getAllowLandmark() const
00429 { return (mParcelFlags & PF_ALLOW_LANDMARK) ? TRUE : FALSE; }
00430
00431 BOOL getAllowGroupScripts() const
00432 { return (mParcelFlags & PF_ALLOW_GROUP_SCRIPTS) ? TRUE : FALSE; }
00433
00434 BOOL getAllowOtherScripts() const
00435 { return (mParcelFlags & PF_ALLOW_OTHER_SCRIPTS) ? TRUE : FALSE; }
00436
00437 BOOL getAllowAllObjectEntry() const
00438 { return (mParcelFlags & PF_ALLOW_ALL_OBJECT_ENTRY) ? TRUE : FALSE; }
00439
00440 BOOL getAllowGroupObjectEntry() const
00441 { return (mParcelFlags & PF_ALLOW_GROUP_OBJECT_ENTRY) ? TRUE : FALSE; }
00442
00443 BOOL getForSale() const
00444 { return (mParcelFlags & PF_FOR_SALE) ? TRUE : FALSE; }
00445 BOOL getSoundLocal() const
00446 { return (mParcelFlags & PF_SOUND_LOCAL) ? TRUE : FALSE; }
00447 BOOL getVoiceEnabled() const
00448 { return (mParcelFlags & PF_ALLOW_VOICE_CHAT) ? TRUE : FALSE; }
00449 BOOL getVoiceUseEstateChannel() const
00450 { return (mParcelFlags & PF_USE_ESTATE_VOICE_CHAN) ? TRUE : FALSE; }
00451 BOOL getAllowPublish() const
00452 { return (mParcelFlags & PF_ALLOW_PUBLISH) ? TRUE : FALSE; }
00453 BOOL getMaturePublish() const
00454 { return (mParcelFlags & PF_MATURE_PUBLISH) ? TRUE : FALSE; }
00455 BOOL getRestrictPushObject() const
00456 { return (mParcelFlags & PF_RESTRICT_PUSHOBJECT) ? TRUE : FALSE; }
00457 BOOL getRegionPushOverride() const
00458 { return mRegionPushOverride; }
00459 BOOL getRegionDenyAnonymousOverride() const
00460 { return mRegionDenyAnonymousOverride; }
00461 BOOL getRegionDenyAgeUnverifiedOverride() const
00462 { return mRegionDenyAgeUnverifiedOverride; }
00463
00464 F32 getDrawDistance() const { return mDrawDistance; }
00465 S32 getSalePrice() const { return mSalePrice; }
00466 time_t getClaimDate() const { return mClaimDate; }
00467 S32 getClaimPricePerMeter() const { return mClaimPricePerMeter; }
00468 S32 getRentPricePerMeter() const { return mRentPricePerMeter; }
00469
00470
00471
00472 S32 getArea() const { return mArea; }
00473
00474
00475
00476
00477 S32 getClaimPrice() const { return mClaimPricePerMeter * mArea; }
00478
00479
00480 BOOL allowModifyBy(const LLUUID &agent_id, const LLUUID &group_id) const;
00481
00482
00483 BOOL allowTerraformBy(const LLUUID &agent_id) const;
00484
00485
00486 S32 blockAccess(const LLUUID& agent_id,
00487 const LLUUID& group_id,
00488 const BOOL is_agent_identified,
00489 const BOOL is_agent_transacted,
00490 const BOOL is_agent_ageverified) const;
00491
00492
00493 BOOL isAgentBanned(const LLUUID& agent_id) const;
00494
00495 static bool isAgentBlockedFromParcel(LLParcel* parcelp,
00496 const LLUUID& agent_id,
00497 const std::vector<LLUUID>& group_ids,
00498 const BOOL is_agent_identified,
00499 const BOOL is_agent_transacted,
00500 const BOOL is_agent_ageverified);
00501
00502 bool operator==(const LLParcel &rhs) const;
00503
00504
00505 S32 getTotalRent() const;
00506 F32 getAdjustedRentPerMeter() const;
00507
00508 const LLVector3& getAABBMin() const { return mAABBMin; }
00509 const LLVector3& getAABBMax() const { return mAABBMax; }
00510 LLVector3 getCenterpoint() const;
00511
00512
00513 S32 getSimWideMaxPrimCapacity() const { return mSimWideMaxPrimCapacity; }
00514 S32 getSimWidePrimCount() const { return mSimWidePrimCount; }
00515
00516
00517 S32 getMaxPrimCapacity() const { return mMaxPrimCapacity; }
00518 S32 getPrimCount() const { return mOwnerPrimCount + mGroupPrimCount + mOtherPrimCount + mSelectedPrimCount; }
00519 S32 getOwnerPrimCount() const { return mOwnerPrimCount; }
00520 S32 getGroupPrimCount() const { return mGroupPrimCount; }
00521 S32 getOtherPrimCount() const { return mOtherPrimCount; }
00522 S32 getSelectedPrimCount() const{ return mSelectedPrimCount; }
00523 S32 getTempPrimCount() const { return mTempPrimCount; }
00524 F32 getParcelPrimBonus() const { return mParcelPrimBonus; }
00525
00526 S32 getCleanOtherTime() const { return mCleanOtherTime; }
00527
00528 void setMaxPrimCapacity(S32 max) { mMaxPrimCapacity = max; }
00529
00530 void setSimWideMaxPrimCapacity(S32 current) { mSimWideMaxPrimCapacity = current; }
00531 void setSimWidePrimCount(S32 current) { mSimWidePrimCount = current; }
00532
00533
00534 void setOwnerPrimCount(S32 current) { mOwnerPrimCount = current; }
00535 void setGroupPrimCount(S32 current) { mGroupPrimCount = current; }
00536 void setOtherPrimCount(S32 current) { mOtherPrimCount = current; }
00537 void setSelectedPrimCount(S32 current) { mSelectedPrimCount = current; }
00538 void setTempPrimCount(S32 current) { mTempPrimCount = current; }
00539 void setParcelPrimBonus(F32 bonus) { mParcelPrimBonus = bonus; }
00540
00541 void setCleanOtherTime(S32 time) { mCleanOtherTime = time; }
00542 void setRegionPushOverride(BOOL override) {mRegionPushOverride = override; }
00543 void setRegionDenyAnonymousOverride(BOOL override) { mRegionDenyAnonymousOverride = override; }
00544 void setRegionDenyAgeUnverifiedOverride(BOOL override) { mRegionDenyAgeUnverifiedOverride = override; }
00545
00546
00547 void setPreviousOwnerID(LLUUID prev_owner) { mPreviousOwnerID = prev_owner; }
00548 void setPreviouslyGroupOwned(BOOL b) { mPreviouslyGroupOwned = b; }
00549 void setSellWithObjects(BOOL b) { setParcelFlag(PF_SELL_PARCEL_OBJECTS, b); }
00550
00551 LLUUID getPreviousOwnerID() const { return mPreviousOwnerID; }
00552 BOOL getPreviouslyGroupOwned() const { return mPreviouslyGroupOwned; }
00553 BOOL getSellWithObjects() const { return (mParcelFlags & PF_SELL_PARCEL_OBJECTS) ? TRUE : FALSE; }
00554
00555 protected:
00556 LLUUID mID;
00557 LLUUID mOwnerID;
00558 LLUUID mGroupID;
00559 BOOL mGroupOwned;
00560 LLUUID mPreviousOwnerID;
00561 BOOL mPreviouslyGroupOwned;
00562
00563 EOwnershipStatus mStatus;
00564 ECategory mCategory;
00565 LLUUID mAuthBuyerID;
00566 LLUUID mSnapshotID;
00567 LLVector3 mUserLocation;
00568 LLVector3 mUserLookAt;
00569 ELandingType mLandingType;
00570 LLTimer mSaleTimerExpires;
00571 S32 mGraceExtension;
00572 BOOL mRecordTransaction;
00573
00574
00575
00576
00577 U32 mAuctionID;
00578
00579
00580 bool mInEscrow;
00581
00582 time_t mClaimDate;
00583 S32 mClaimPricePerMeter;
00584 S32 mRentPricePerMeter;
00585 S32 mArea;
00586 F32 mDiscountRate;
00587 F32 mDrawDistance;
00588 U32 mParcelFlags;
00589 S32 mSalePrice;
00590 LLString mName;
00591 LLString mDesc;
00592 LLString mMusicURL;
00593 LLString mMediaURL;
00594 std::string mMediaDesc;
00595 std::string mMediaType;
00596 S32 mMediaWidth;
00597 S32 mMediaHeight;
00598 U8 mMediaAutoScale;
00599 U8 mMediaLoop;
00600 U8 mObscureMedia;
00601 U8 mObscureMusic;
00602 LLUUID mMediaID;
00603 S32 mPassPrice;
00604 F32 mPassHours;
00605 LLVector3 mAABBMin;
00606 LLVector3 mAABBMax;
00607 S32 mMaxPrimCapacity;
00608 S32 mSimWidePrimCount;
00609 S32 mSimWideMaxPrimCapacity;
00610
00611 S32 mOwnerPrimCount;
00612 S32 mGroupPrimCount;
00613 S32 mOtherPrimCount;
00614 S32 mSelectedPrimCount;
00615 S32 mTempPrimCount;
00616 F32 mParcelPrimBonus;
00617 S32 mCleanOtherTime;
00618 BOOL mRegionPushOverride;
00619 BOOL mRegionDenyAnonymousOverride;
00620 BOOL mRegionDenyAgeUnverifiedOverride;
00621
00622
00623 public:
00624
00625 S32 mLocalID;
00626 LLUUID mBanListTransactionID;
00627 LLUUID mAccessListTransactionID;
00628 std::map<LLUUID,LLAccessEntry> mAccessList;
00629 std::map<LLUUID,LLAccessEntry> mBanList;
00630 std::map<LLUUID,LLAccessEntry> mTempBanList;
00631 std::map<LLUUID,LLAccessEntry> mTempAccessList;
00632 };
00633
00634
00635 #endif