diff options
Diffstat (limited to 'linden/indra/llinventory')
25 files changed, 120 insertions, 776 deletions
diff --git a/linden/indra/llinventory/llcategory.cpp b/linden/indra/llinventory/llcategory.cpp index 9f58c6f..02c5a8e 100644 --- a/linden/indra/llinventory/llcategory.cpp +++ b/linden/indra/llinventory/llcategory.cpp | |||
@@ -16,7 +16,8 @@ | |||
16 | * There are special exceptions to the terms and conditions of the GPL as | 16 | * There are special exceptions to the terms and conditions of the GPL as |
17 | * it is applied to this Source Code. View the full text of the exception | 17 | * it is applied to this Source Code. View the full text of the exception |
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 18 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 19 | * online at |
20 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | 21 | * |
21 | * By copying, modifying or distributing this software, you acknowledge | 22 | * By copying, modifying or distributing this software, you acknowledge |
22 | * that you have read and understood your obligations described above, | 23 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/llcategory.h b/linden/indra/llinventory/llcategory.h index 1692c96..c8e2dac 100644 --- a/linden/indra/llinventory/llcategory.h +++ b/linden/indra/llinventory/llcategory.h | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/lleconomy.cpp b/linden/indra/llinventory/lleconomy.cpp index 5f8342d..4366d1e 100644 --- a/linden/indra/llinventory/lleconomy.cpp +++ b/linden/indra/llinventory/lleconomy.cpp | |||
@@ -16,7 +16,8 @@ | |||
16 | * There are special exceptions to the terms and conditions of the GPL as | 16 | * There are special exceptions to the terms and conditions of the GPL as |
17 | * it is applied to this Source Code. View the full text of the exception | 17 | * it is applied to this Source Code. View the full text of the exception |
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 18 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 19 | * online at |
20 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | 21 | * |
21 | * By copying, modifying or distributing this software, you acknowledge | 22 | * By copying, modifying or distributing this software, you acknowledge |
22 | * that you have read and understood your obligations described above, | 23 | * that you have read and understood your obligations described above, |
@@ -73,6 +74,18 @@ void LLGlobalEconomy::processEconomyData(LLMessageSystem *msg, LLGlobalEconomy* | |||
73 | econ_data->setPricePublicObjectDelete(i); | 74 | econ_data->setPricePublicObjectDelete(i); |
74 | msg->getS32Fast(_PREHASH_Info, _PREHASH_PriceUpload, i); | 75 | msg->getS32Fast(_PREHASH_Info, _PREHASH_PriceUpload, i); |
75 | econ_data->setPriceUpload(i); | 76 | econ_data->setPriceUpload(i); |
77 | #if LL_LINUX | ||
78 | // We can optionally fake the received upload price for testing. | ||
79 | // Note that the server is within its rights to not obey our fake | ||
80 | // price. :) | ||
81 | const char* fakeprice_str = getenv("LL_FAKE_UPLOAD_PRICE"); | ||
82 | if (fakeprice_str) | ||
83 | { | ||
84 | S32 fakeprice = (S32)atoi(fakeprice_str); | ||
85 | llwarns << "LL_FAKE_UPLOAD_PRICE: Faking upload price as L$" << fakeprice << llendl; | ||
86 | econ_data->setPriceUpload(fakeprice); | ||
87 | } | ||
88 | #endif | ||
76 | msg->getS32Fast(_PREHASH_Info, _PREHASH_PriceRentLight, i); | 89 | msg->getS32Fast(_PREHASH_Info, _PREHASH_PriceRentLight, i); |
77 | econ_data->setPriceRentLight(i); | 90 | econ_data->setPriceRentLight(i); |
78 | msg->getS32Fast(_PREHASH_Info, _PREHASH_TeleportMinPrice, i); | 91 | msg->getS32Fast(_PREHASH_Info, _PREHASH_TeleportMinPrice, i); |
diff --git a/linden/indra/llinventory/lleconomy.h b/linden/indra/llinventory/lleconomy.h index 03db99b..2e2adc4 100644 --- a/linden/indra/llinventory/lleconomy.h +++ b/linden/indra/llinventory/lleconomy.h | |||
@@ -16,7 +16,8 @@ | |||
16 | * There are special exceptions to the terms and conditions of the GPL as | 16 | * There are special exceptions to the terms and conditions of the GPL as |
17 | * it is applied to this Source Code. View the full text of the exception | 17 | * it is applied to this Source Code. View the full text of the exception |
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 18 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 19 | * online at |
20 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | 21 | * |
21 | * By copying, modifying or distributing this software, you acknowledge | 22 | * By copying, modifying or distributing this software, you acknowledge |
22 | * that you have read and understood your obligations described above, | 23 | * that you have read and understood your obligations described above, |
@@ -47,6 +48,8 @@ public: | |||
47 | // become a singleton and this pattern will more easily disambiguate them. | 48 | // become a singleton and this pattern will more easily disambiguate them. |
48 | typedef LLSingleton<LLGlobalEconomy> Singleton; | 49 | typedef LLSingleton<LLGlobalEconomy> Singleton; |
49 | 50 | ||
51 | void initSingleton() { } | ||
52 | |||
50 | virtual void print(); | 53 | virtual void print(); |
51 | 54 | ||
52 | static void processEconomyData(LLMessageSystem *msg, LLGlobalEconomy* econ_data); | 55 | static void processEconomyData(LLMessageSystem *msg, LLGlobalEconomy* econ_data); |
diff --git a/linden/indra/llinventory/llinventory.cpp b/linden/indra/llinventory/llinventory.cpp index 2d86256..b1cfd68 100644 --- a/linden/indra/llinventory/llinventory.cpp +++ b/linden/indra/llinventory/llinventory.cpp | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/llinventory.h b/linden/indra/llinventory/llinventory.h index 578d331..937e12d 100644 --- a/linden/indra/llinventory/llinventory.h +++ b/linden/indra/llinventory/llinventory.h | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/llinventorytype.cpp b/linden/indra/llinventory/llinventorytype.cpp index 585532c..a161a0e 100644 --- a/linden/indra/llinventory/llinventorytype.cpp +++ b/linden/indra/llinventory/llinventorytype.cpp | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/llinventorytype.h b/linden/indra/llinventory/llinventorytype.h index 51747d6..d3effc0 100644 --- a/linden/indra/llinventory/llinventorytype.h +++ b/linden/indra/llinventory/llinventorytype.h | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/lllandmark.cpp b/linden/indra/llinventory/lllandmark.cpp index 234b087..13a63bc 100644 --- a/linden/indra/llinventory/lllandmark.cpp +++ b/linden/indra/llinventory/lllandmark.cpp | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/lllandmark.h b/linden/indra/llinventory/lllandmark.h index 4bce527..cb0c11a 100644 --- a/linden/indra/llinventory/lllandmark.h +++ b/linden/indra/llinventory/lllandmark.h | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/llnotecard.cpp b/linden/indra/llinventory/llnotecard.cpp index 0c33d23..9e7e043 100644 --- a/linden/indra/llinventory/llnotecard.cpp +++ b/linden/indra/llinventory/llnotecard.cpp | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/llnotecard.h b/linden/indra/llinventory/llnotecard.h index aa4e2bd..b903f1f 100644 --- a/linden/indra/llinventory/llnotecard.h +++ b/linden/indra/llinventory/llnotecard.h | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/llparcel.cpp b/linden/indra/llinventory/llparcel.cpp index d2f3a87..9c27476 100644 --- a/linden/indra/llinventory/llparcel.cpp +++ b/linden/indra/llinventory/llparcel.cpp | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
@@ -57,8 +58,11 @@ static const std::string PARCEL_OWNERSHIP_STATUS_STRING[LLParcel::OS_COUNT+1] = | |||
57 | }; | 58 | }; |
58 | 59 | ||
59 | // NOTE: Adding parcel categories also requires updating: | 60 | // NOTE: Adding parcel categories also requires updating: |
60 | // * newview/app_settings/floater_directory.xml category combobox | 61 | // * floater_directory.xml category combobox |
62 | // * floater_about_land.xml category combobox | ||
61 | // * Web site "create event" tools | 63 | // * Web site "create event" tools |
64 | // DO NOT DELETE ITEMS FROM THIS LIST WITHOUT DEEPLY UNDERSTANDING WHAT YOU'RE DOING. | ||
65 | // | ||
62 | static const std::string PARCEL_CATEGORY_STRING[LLParcel::C_COUNT] = | 66 | static const std::string PARCEL_CATEGORY_STRING[LLParcel::C_COUNT] = |
63 | { | 67 | { |
64 | "none", | 68 | "none", |
@@ -109,37 +113,11 @@ static const std::string PARCEL_ACTION_STRING[LLParcel::A_COUNT + 1] = | |||
109 | "unknown" | 113 | "unknown" |
110 | }; | 114 | }; |
111 | 115 | ||
112 | // Timeouts for parcels | ||
113 | // default is 21 days * 24h/d * 60m/h * 60s/m *1000000 usec/s = 1814400000000 | ||
114 | const U64 DEFAULT_USEC_CONVERSION_TIMEOUT = U64L(1814400000000); | ||
115 | // ***** TESTING is 10 minutes | ||
116 | //const U64 DEFAULT_USEC_CONVERSION_TIMEOUT = U64L(600000000); | ||
117 | 116 | ||
118 | // group is 60 days * 24h/d * 60m/h * 60s/m *1000000 usec/s = 5184000000000 | ||
119 | const U64 GROUP_USEC_CONVERSION_TIMEOUT = U64L(5184000000000); | ||
120 | // ***** TESTING is 10 minutes | ||
121 | //const U64 GROUP_USEC_CONVERSION_TIMEOUT = U64L(600000000); | ||
122 | 117 | ||
123 | // default sale timeout is 2 days -> 172800000000 | ||
124 | const U64 DEFAULT_USEC_SALE_TIMEOUT = U64L(172800000000); | ||
125 | // ***** TESTING is 10 minutes | ||
126 | //const U64 DEFAULT_USEC_SALE_TIMEOUT = U64L(600000000); | ||
127 | |||
128 | // more grace period extensions. | ||
129 | const U64 SEVEN_DAYS_IN_USEC = U64L(604800000000); | ||
130 | |||
131 | // if more than 100,000s before sale revert, and no extra extension | ||
132 | // has been given, go ahead and extend it more. That's about 1.2 days. | ||
133 | const S32 EXTEND_GRACE_IF_MORE_THAN_SEC = 100000; | ||
134 | |||
135 | |||
136 | const std::string& ownership_status_to_string(LLParcel::EOwnershipStatus status); | ||
137 | LLParcel::EOwnershipStatus ownership_string_to_status(const std::string& s); | ||
138 | //const char* revert_action_to_string(LLParcel::ESaleTimerExpireAction action); | 118 | //const char* revert_action_to_string(LLParcel::ESaleTimerExpireAction action); |
139 | //LLParcel::ESaleTimerExpireAction revert_string_to_action(const char* s); | 119 | //LLParcel::ESaleTimerExpireAction revert_string_to_action(const char* s); |
140 | const std::string& category_to_string(LLParcel::ECategory category); | ||
141 | const std::string& category_to_ui_string(LLParcel::ECategory category); | 120 | const std::string& category_to_ui_string(LLParcel::ECategory category); |
142 | LLParcel::ECategory category_string_to_category(const std::string& s); | ||
143 | LLParcel::ECategory category_ui_string_to_category(const std::string& s); | 121 | LLParcel::ECategory category_ui_string_to_category(const std::string& s); |
144 | 122 | ||
145 | LLParcel::LLParcel() | 123 | LLParcel::LLParcel() |
@@ -277,7 +255,7 @@ void LLParcel::setName(const std::string& name) | |||
277 | // The escaping here must match the escaping in the database | 255 | // The escaping here must match the escaping in the database |
278 | // abstraction layer. | 256 | // abstraction layer. |
279 | mName = name; | 257 | mName = name; |
280 | LLStringFn::replace_nonprintable(mName, LL_UNKNOWN_CHAR); | 258 | LLStringFn::replace_nonprintable_in_ascii(mName, LL_UNKNOWN_CHAR); |
281 | } | 259 | } |
282 | 260 | ||
283 | void LLParcel::setDesc(const std::string& desc) | 261 | void LLParcel::setDesc(const std::string& desc) |
@@ -295,7 +273,7 @@ void LLParcel::setMusicURL(const std::string& url) | |||
295 | // abstraction layer. | 273 | // abstraction layer. |
296 | // This should really filter the url in some way. Other than | 274 | // This should really filter the url in some way. Other than |
297 | // simply requiring non-printable. | 275 | // simply requiring non-printable. |
298 | LLStringFn::replace_nonprintable(mMusicURL, LL_UNKNOWN_CHAR); | 276 | LLStringFn::replace_nonprintable_in_ascii(mMusicURL, LL_UNKNOWN_CHAR); |
299 | } | 277 | } |
300 | 278 | ||
301 | void LLParcel::setMediaURL(const std::string& url) | 279 | void LLParcel::setMediaURL(const std::string& url) |
@@ -305,7 +283,7 @@ void LLParcel::setMediaURL(const std::string& url) | |||
305 | // abstraction layer if it's ever added. | 283 | // abstraction layer if it's ever added. |
306 | // This should really filter the url in some way. Other than | 284 | // This should really filter the url in some way. Other than |
307 | // simply requiring non-printable. | 285 | // simply requiring non-printable. |
308 | LLStringFn::replace_nonprintable(mMediaURL, LL_UNKNOWN_CHAR); | 286 | LLStringFn::replace_nonprintable_in_ascii(mMediaURL, LL_UNKNOWN_CHAR); |
309 | } | 287 | } |
310 | 288 | ||
311 | void LLParcel::setMediaDesc(const std::string& desc) | 289 | void LLParcel::setMediaDesc(const std::string& desc) |
@@ -547,500 +525,6 @@ void LLParcel::setDiscountRate(F32 rate) | |||
547 | // File input and output | 525 | // File input and output |
548 | //----------------------------------------------------------- | 526 | //----------------------------------------------------------- |
549 | 527 | ||
550 | |||
551 | // WARNING: Area will be wrong until you calculate it. | ||
552 | BOOL LLParcel::importStream(std::istream& input_stream) | ||
553 | { | ||
554 | U32 setting; | ||
555 | S32 secs_until_revert = 0; | ||
556 | |||
557 | skip_to_end_of_next_keyword("{", input_stream); | ||
558 | if (!input_stream.good()) | ||
559 | { | ||
560 | llwarns << "LLParcel::importStream() - bad input_stream" << llendl; | ||
561 | return FALSE; | ||
562 | } | ||
563 | |||
564 | while (input_stream.good()) | ||
565 | { | ||
566 | skip_comments_and_emptyspace(input_stream); | ||
567 | std::string line, keyword, value; | ||
568 | get_line(line, input_stream, MAX_STRING); | ||
569 | get_keyword_and_value(keyword, value, line); | ||
570 | |||
571 | if ("}" == keyword) | ||
572 | { | ||
573 | break; | ||
574 | } | ||
575 | else if ("parcel_id" == keyword) | ||
576 | { | ||
577 | mID.set(value); | ||
578 | } | ||
579 | else if ("status" == keyword) | ||
580 | { | ||
581 | mStatus = ownership_string_to_status(value); | ||
582 | } | ||
583 | else if ("category" == keyword) | ||
584 | { | ||
585 | mCategory = category_string_to_category(value); | ||
586 | } | ||
587 | else if ("local_id" == keyword) | ||
588 | { | ||
589 | LLStringUtil::convertToS32(value, mLocalID); | ||
590 | } | ||
591 | else if ("name" == keyword) | ||
592 | { | ||
593 | setName( value ); | ||
594 | } | ||
595 | else if ("desc" == keyword) | ||
596 | { | ||
597 | setDesc( value ); | ||
598 | } | ||
599 | else if ("music_url" == keyword) | ||
600 | { | ||
601 | setMusicURL( value ); | ||
602 | } | ||
603 | else if ("media_url" == keyword) | ||
604 | { | ||
605 | setMediaURL( value ); | ||
606 | } | ||
607 | else if ("media_desc" == keyword) | ||
608 | { | ||
609 | setMediaDesc( value ); | ||
610 | } | ||
611 | else if ("media_type" == keyword) | ||
612 | { | ||
613 | setMediaType( value ); | ||
614 | } | ||
615 | else if ("media_width" == keyword) | ||
616 | { | ||
617 | S32 width; | ||
618 | LLStringUtil::convertToS32(value, width); | ||
619 | setMediaWidth( width ); | ||
620 | } | ||
621 | else if ("media_height" == keyword) | ||
622 | { | ||
623 | S32 height; | ||
624 | LLStringUtil::convertToS32(value, height); | ||
625 | setMediaHeight( height ); | ||
626 | } | ||
627 | else if ("media_id" == keyword) | ||
628 | { | ||
629 | mMediaID.set( value ); | ||
630 | } | ||
631 | else if ("media_auto_scale" == keyword) | ||
632 | { | ||
633 | LLStringUtil::convertToU8(value, mMediaAutoScale); | ||
634 | } | ||
635 | else if ("media_loop" == keyword) | ||
636 | { | ||
637 | LLStringUtil::convertToU8(value, mMediaLoop); | ||
638 | } | ||
639 | else if ("obscure_media" == keyword) | ||
640 | { | ||
641 | LLStringUtil::convertToU8(value, mObscureMedia); | ||
642 | } | ||
643 | else if ("obscure_music" == keyword) | ||
644 | { | ||
645 | LLStringUtil::convertToU8(value, mObscureMusic); | ||
646 | } | ||
647 | else if ("owner_id" == keyword) | ||
648 | { | ||
649 | mOwnerID.set( value ); | ||
650 | } | ||
651 | else if ("group_owned" == keyword) | ||
652 | { | ||
653 | LLStringUtil::convertToBOOL(value, mGroupOwned); | ||
654 | } | ||
655 | else if ("clean_other_time" == keyword) | ||
656 | { | ||
657 | S32 time; | ||
658 | LLStringUtil::convertToS32(value, time); | ||
659 | setCleanOtherTime(time); | ||
660 | } | ||
661 | else if ("auth_buyer_id" == keyword) | ||
662 | { | ||
663 | mAuthBuyerID.set(value); | ||
664 | } | ||
665 | else if ("snapshot_id" == keyword) | ||
666 | { | ||
667 | mSnapshotID.set(value); | ||
668 | } | ||
669 | else if ("user_location" == keyword) | ||
670 | { | ||
671 | sscanf(value.c_str(), "%f %f %f", | ||
672 | &mUserLocation.mV[VX], | ||
673 | &mUserLocation.mV[VY], | ||
674 | &mUserLocation.mV[VZ]); | ||
675 | } | ||
676 | else if ("user_look_at" == keyword) | ||
677 | { | ||
678 | sscanf(value.c_str(), "%f %f %f", | ||
679 | &mUserLookAt.mV[VX], | ||
680 | &mUserLookAt.mV[VY], | ||
681 | &mUserLookAt.mV[VZ]); | ||
682 | } | ||
683 | else if ("landing_type" == keyword) | ||
684 | { | ||
685 | S32 landing_type = 0; | ||
686 | LLStringUtil::convertToS32(value, landing_type); | ||
687 | mLandingType = (ELandingType) landing_type; | ||
688 | } | ||
689 | else if ("join_neighbors" == keyword) | ||
690 | { | ||
691 | llinfos << "found deprecated keyword join_neighbors" << llendl; | ||
692 | } | ||
693 | else if ("revert_sale" == keyword) | ||
694 | { | ||
695 | LLStringUtil::convertToS32(value, secs_until_revert); | ||
696 | if (secs_until_revert > 0) | ||
697 | { | ||
698 | mSaleTimerExpires.start(); | ||
699 | mSaleTimerExpires.setTimerExpirySec((F32)secs_until_revert); | ||
700 | } | ||
701 | } | ||
702 | else if("extended_grace" == keyword) | ||
703 | { | ||
704 | LLStringUtil::convertToS32(value, mGraceExtension); | ||
705 | } | ||
706 | else if ("user_list_type" == keyword) | ||
707 | { | ||
708 | // deprecated | ||
709 | } | ||
710 | else if("auction_id" == keyword) | ||
711 | { | ||
712 | LLStringUtil::convertToU32(value, mAuctionID); | ||
713 | } | ||
714 | else if ("allow_modify" == keyword) | ||
715 | { | ||
716 | LLStringUtil::convertToU32(value, setting); | ||
717 | setParcelFlag(PF_CREATE_OBJECTS, setting); | ||
718 | } | ||
719 | else if ("allow_group_modify" == keyword) | ||
720 | { | ||
721 | LLStringUtil::convertToU32(value, setting); | ||
722 | setParcelFlag(PF_CREATE_GROUP_OBJECTS, setting); | ||
723 | } | ||
724 | else if ("allow_all_object_entry" == keyword) | ||
725 | { | ||
726 | LLStringUtil::convertToU32(value, setting); | ||
727 | setParcelFlag(PF_ALLOW_ALL_OBJECT_ENTRY, setting); | ||
728 | } | ||
729 | else if ("allow_group_object_entry" == keyword) | ||
730 | { | ||
731 | LLStringUtil::convertToU32(value, setting); | ||
732 | setParcelFlag(PF_ALLOW_GROUP_OBJECT_ENTRY, setting); | ||
733 | } | ||
734 | else if ("allow_deed_to_group" == keyword) | ||
735 | { | ||
736 | LLStringUtil::convertToU32(value, setting); | ||
737 | setParcelFlag(PF_ALLOW_DEED_TO_GROUP, setting); | ||
738 | } | ||
739 | else if("contribute_with_deed" == keyword) | ||
740 | { | ||
741 | LLStringUtil::convertToU32(value, setting); | ||
742 | setParcelFlag(PF_CONTRIBUTE_WITH_DEED, setting); | ||
743 | } | ||
744 | else if ("allow_terraform" == keyword) | ||
745 | { | ||
746 | LLStringUtil::convertToU32(value, setting); | ||
747 | setParcelFlag(PF_ALLOW_TERRAFORM, setting); | ||
748 | } | ||
749 | else if ("allow_damage" == keyword) | ||
750 | { | ||
751 | LLStringUtil::convertToU32(value, setting); | ||
752 | setParcelFlag(PF_ALLOW_DAMAGE, setting); | ||
753 | } | ||
754 | else if ("allow_fly" == keyword) | ||
755 | { | ||
756 | LLStringUtil::convertToU32(value, setting); | ||
757 | setParcelFlag(PF_ALLOW_FLY, setting); | ||
758 | } | ||
759 | else if ("allow_landmark" == keyword) | ||
760 | { | ||
761 | LLStringUtil::convertToU32(value, setting); | ||
762 | setParcelFlag(PF_ALLOW_LANDMARK, setting); | ||
763 | } | ||
764 | else if ("sound_local" == keyword) | ||
765 | { | ||
766 | LLStringUtil::convertToU32(value, setting); | ||
767 | setParcelFlag(PF_SOUND_LOCAL, setting); | ||
768 | } | ||
769 | else if ("allow_group_scripts" == keyword) | ||
770 | { | ||
771 | LLStringUtil::convertToU32(value, setting); | ||
772 | setParcelFlag(PF_ALLOW_GROUP_SCRIPTS, setting); | ||
773 | } | ||
774 | else if ("allow_voice_chat" == keyword) | ||
775 | { | ||
776 | LLStringUtil::convertToU32(value, setting); | ||
777 | setParcelFlag(PF_ALLOW_VOICE_CHAT, setting); | ||
778 | } | ||
779 | else if ("use_estate_voice_chan" == keyword) | ||
780 | { | ||
781 | LLStringUtil::convertToU32(value, setting); | ||
782 | setParcelFlag(PF_USE_ESTATE_VOICE_CHAN, setting); | ||
783 | } | ||
784 | else if ("allow_scripts" == keyword) | ||
785 | { | ||
786 | LLStringUtil::convertToU32(value, setting); | ||
787 | setParcelFlag(PF_ALLOW_OTHER_SCRIPTS, setting); | ||
788 | } | ||
789 | else if ("for_sale" == keyword) | ||
790 | { | ||
791 | LLStringUtil::convertToU32(value, setting); | ||
792 | setParcelFlag(PF_FOR_SALE, setting); | ||
793 | } | ||
794 | else if ("sell_w_objects" == keyword) | ||
795 | { | ||
796 | LLStringUtil::convertToU32(value, setting); | ||
797 | setParcelFlag(PF_SELL_PARCEL_OBJECTS, setting); | ||
798 | } | ||
799 | else if ("use_pass_list" == keyword) | ||
800 | { | ||
801 | LLStringUtil::convertToU32(value, setting); | ||
802 | setParcelFlag(PF_USE_PASS_LIST, setting); | ||
803 | } | ||
804 | else if ("show_directory" == keyword) | ||
805 | { | ||
806 | LLStringUtil::convertToU32(value, setting); | ||
807 | setParcelFlag(PF_SHOW_DIRECTORY, setting); | ||
808 | } | ||
809 | else if ("allow_publish" == keyword) | ||
810 | { | ||
811 | LLStringUtil::convertToU32(value, setting); | ||
812 | setParcelFlag(PF_ALLOW_PUBLISH, setting); | ||
813 | } | ||
814 | else if ("mature_publish" == keyword) | ||
815 | { | ||
816 | LLStringUtil::convertToU32(value, setting); | ||
817 | setParcelFlag(PF_MATURE_PUBLISH, setting); | ||
818 | } | ||
819 | else if ("claim_date" == keyword) | ||
820 | { | ||
821 | // BUG: This will fail when time rolls over in 2038. | ||
822 | S32 time; | ||
823 | LLStringUtil::convertToS32(value, time); | ||
824 | mClaimDate = time; | ||
825 | } | ||
826 | else if ("claim_price" == keyword) | ||
827 | { | ||
828 | LLStringUtil::convertToS32(value, mClaimPricePerMeter); | ||
829 | } | ||
830 | else if ("rent_price" == keyword) | ||
831 | { | ||
832 | LLStringUtil::convertToS32(value, mRentPricePerMeter); | ||
833 | } | ||
834 | else if ("discount_rate" == keyword) | ||
835 | { | ||
836 | LLStringUtil::convertToF32(value, mDiscountRate); | ||
837 | } | ||
838 | else if ("draw_distance" == keyword) | ||
839 | { | ||
840 | LLStringUtil::convertToF32(value, mDrawDistance); | ||
841 | } | ||
842 | else if ("sale_price" == keyword) | ||
843 | { | ||
844 | LLStringUtil::convertToS32(value, mSalePrice); | ||
845 | } | ||
846 | else if ("pass_price" == keyword) | ||
847 | { | ||
848 | LLStringUtil::convertToS32(value, mPassPrice); | ||
849 | } | ||
850 | else if ("pass_hours" == keyword) | ||
851 | { | ||
852 | LLStringUtil::convertToF32(value, mPassHours); | ||
853 | } | ||
854 | else if ("box" == keyword) | ||
855 | { | ||
856 | // deprecated | ||
857 | } | ||
858 | else if ("aabb_min" == keyword) | ||
859 | { | ||
860 | sscanf(value.c_str(), "%f %f %f", | ||
861 | &mAABBMin.mV[VX], &mAABBMin.mV[VY], &mAABBMin.mV[VZ]); | ||
862 | } | ||
863 | else if ("use_access_group" == keyword) | ||
864 | { | ||
865 | LLStringUtil::convertToU32(value, setting); | ||
866 | setParcelFlag(PF_USE_ACCESS_GROUP, setting); | ||
867 | } | ||
868 | else if ("use_access_list" == keyword) | ||
869 | { | ||
870 | LLStringUtil::convertToU32(value, setting); | ||
871 | setParcelFlag(PF_USE_ACCESS_LIST, setting); | ||
872 | } | ||
873 | else if ("use_ban_list" == keyword) | ||
874 | { | ||
875 | LLStringUtil::convertToU32(value, setting); | ||
876 | setParcelFlag(PF_USE_BAN_LIST, setting); | ||
877 | } | ||
878 | else if ("group_name" == keyword) | ||
879 | { | ||
880 | llinfos << "found deprecated keyword group_name" << llendl; | ||
881 | } | ||
882 | else if ("group_id" == keyword) | ||
883 | { | ||
884 | mGroupID.set( value ); | ||
885 | } | ||
886 | // TODO: DEPRECATED FLAG | ||
887 | // Flag removed from simstate files in 1.11.1 | ||
888 | // Remove at some point where we have guarenteed this flag | ||
889 | // no longer exists anywhere in simstate files. | ||
890 | else if ("require_identified" == keyword) | ||
891 | { | ||
892 | // LLStringUtil::convertToU32(value, setting); | ||
893 | // setParcelFlag(PF_DENY_ANONYMOUS, setting); | ||
894 | } | ||
895 | // TODO: DEPRECATED FLAG | ||
896 | // Flag removed from simstate files in 1.11.1 | ||
897 | // Remove at some point where we have guarenteed this flag | ||
898 | // no longer exists anywhere in simstate files. | ||
899 | else if ("require_transacted" == keyword) | ||
900 | { | ||
901 | // LLStringUtil::convertToU32(value, setting); | ||
902 | // setParcelFlag(PF_DENY_ANONYMOUS, setting); | ||
903 | // setParcelFlag(PF_DENY_IDENTIFIED, setting); | ||
904 | } | ||
905 | else if ("restrict_pushobject" == keyword) | ||
906 | { | ||
907 | LLStringUtil::convertToU32(value, setting); | ||
908 | setParcelFlag(PF_RESTRICT_PUSHOBJECT, setting); | ||
909 | } | ||
910 | else if ("deny_anonymous" == keyword) | ||
911 | { | ||
912 | LLStringUtil::convertToU32(value, setting); | ||
913 | setParcelFlag(PF_DENY_ANONYMOUS, setting); | ||
914 | } | ||
915 | else if ("deny_identified" == keyword) | ||
916 | { | ||
917 | // LLStringUtil::convertToU32(value, setting); | ||
918 | // setParcelFlag(PF_DENY_IDENTIFIED, setting); | ||
919 | } | ||
920 | else if ("deny_transacted" == keyword) | ||
921 | { | ||
922 | // LLStringUtil::convertToU32(value, setting); | ||
923 | // setParcelFlag(PF_DENY_TRANSACTED, setting); | ||
924 | } | ||
925 | else if ("deny_age_unverified" == keyword) | ||
926 | { | ||
927 | LLStringUtil::convertToU32(value, setting); | ||
928 | setParcelFlag(PF_DENY_AGEUNVERIFIED, setting); | ||
929 | } | ||
930 | else if ("access_list" == keyword) | ||
931 | { | ||
932 | S32 entry_count = 0; | ||
933 | LLStringUtil::convertToS32(value, entry_count); | ||
934 | for (S32 i = 0; i < entry_count; i++) | ||
935 | { | ||
936 | LLAccessEntry entry; | ||
937 | if (importAccessEntry(input_stream, &entry)) | ||
938 | { | ||
939 | mAccessList[entry.mID] = entry; | ||
940 | } | ||
941 | } | ||
942 | } | ||
943 | else if ("ban_list" == keyword) | ||
944 | { | ||
945 | S32 entry_count = 0; | ||
946 | LLStringUtil::convertToS32(value, entry_count); | ||
947 | for (S32 i = 0; i < entry_count; i++) | ||
948 | { | ||
949 | LLAccessEntry entry; | ||
950 | if (importAccessEntry(input_stream, &entry)) | ||
951 | { | ||
952 | mBanList[entry.mID] = entry; | ||
953 | } | ||
954 | } | ||
955 | } | ||
956 | else if ("renter_list" == keyword) | ||
957 | { | ||
958 | /* | ||
959 | S32 entry_count = 0; | ||
960 | LLStringUtil::convertToS32(value, entry_count); | ||
961 | for (S32 i = 0; i < entry_count; i++) | ||
962 | { | ||
963 | LLAccessEntry entry; | ||
964 | if (importAccessEntry(input_stream, &entry)) | ||
965 | { | ||
966 | mRenterList.put(entry); | ||
967 | } | ||
968 | }*/ | ||
969 | } | ||
970 | else if ("pass_list" == keyword) | ||
971 | { | ||
972 | // legacy - put into access list | ||
973 | S32 entry_count = 0; | ||
974 | LLStringUtil::convertToS32(value, entry_count); | ||
975 | for (S32 i = 0; i < entry_count; i++) | ||
976 | { | ||
977 | LLAccessEntry entry; | ||
978 | if (importAccessEntry(input_stream, &entry)) | ||
979 | { | ||
980 | mAccessList[entry.mID] = entry; | ||
981 | } | ||
982 | } | ||
983 | } | ||
984 | |||
985 | else | ||
986 | { | ||
987 | llwarns << "Unknown keyword in parcel section: <" | ||
988 | << keyword << ">" << llendl; | ||
989 | } | ||
990 | } | ||
991 | |||
992 | // this code block detects if we have loaded a 1.1 simstate file, | ||
993 | // and follows the conversion rules specified in | ||
994 | // design_docs/land/pay_for_parcel.txt. | ||
995 | F32 time_to_expire = 0.0f; | ||
996 | if(mID.isNull()) | ||
997 | { | ||
998 | mID.generate(); | ||
999 | mStatus = OS_LEASE_PENDING; | ||
1000 | //mBuyerID = mOwnerID; | ||
1001 | if(getIsGroupOwned()) | ||
1002 | { | ||
1003 | time_to_expire += GROUP_USEC_CONVERSION_TIMEOUT / SEC_TO_MICROSEC; | ||
1004 | } | ||
1005 | else | ||
1006 | { | ||
1007 | time_to_expire += DEFAULT_USEC_CONVERSION_TIMEOUT / SEC_TO_MICROSEC; | ||
1008 | } | ||
1009 | //mExpireAction = STEA_PUBLIC; | ||
1010 | mRecordTransaction = TRUE; | ||
1011 | } | ||
1012 | |||
1013 | // this code block deals with giving an extension to pending | ||
1014 | // parcels to the midday of 2004-01-19 if they were originally set | ||
1015 | // for some time on 2004-01-12. | ||
1016 | if((0 == mGraceExtension) | ||
1017 | && (EXTEND_GRACE_IF_MORE_THAN_SEC < secs_until_revert)) | ||
1018 | { | ||
1019 | const S32 NEW_CONVERSION_DATE = 1074538800; // 2004-01-19T11:00:00 | ||
1020 | time_t now = time(NULL); // now in epoch | ||
1021 | secs_until_revert = (S32)(NEW_CONVERSION_DATE - now); | ||
1022 | time_to_expire = (F32)secs_until_revert; | ||
1023 | mGraceExtension = 1; | ||
1024 | } | ||
1025 | |||
1026 | // This code block adds yet another week to the deadline. :( | ||
1027 | if(1 == mGraceExtension) | ||
1028 | { | ||
1029 | time_to_expire += SEVEN_DAYS_IN_USEC / SEC_TO_MICROSEC; | ||
1030 | mGraceExtension = 2; | ||
1031 | } | ||
1032 | |||
1033 | if (time_to_expire > 0) | ||
1034 | { | ||
1035 | mSaleTimerExpires.setTimerExpirySec(time_to_expire); | ||
1036 | mSaleTimerExpires.start(); | ||
1037 | } | ||
1038 | |||
1039 | // successful import | ||
1040 | return TRUE; | ||
1041 | } | ||
1042 | |||
1043 | |||
1044 | BOOL LLParcel::importAccessEntry(std::istream& input_stream, LLAccessEntry* entry) | 528 | BOOL LLParcel::importAccessEntry(std::istream& input_stream, LLAccessEntry* entry) |
1045 | { | 529 | { |
1046 | skip_to_end_of_next_keyword("{", input_stream); | 530 | skip_to_end_of_next_keyword("{", input_stream); |
@@ -1084,230 +568,6 @@ BOOL LLParcel::importAccessEntry(std::istream& input_stream, LLAccessEntry* entr | |||
1084 | return input_stream.good(); | 568 | return input_stream.good(); |
1085 | } | 569 | } |
1086 | 570 | ||
1087 | BOOL LLParcel::exportStream(std::ostream& output_stream) | ||
1088 | { | ||
1089 | S32 setting; | ||
1090 | std::string id_string; | ||
1091 | |||
1092 | std::ios::fmtflags old_flags = output_stream.flags(); | ||
1093 | output_stream.setf(std::ios::showpoint); | ||
1094 | output_stream << "\t{\n"; | ||
1095 | |||
1096 | mID.toString(id_string); | ||
1097 | output_stream << "\t\t parcel_id " << id_string << "\n"; | ||
1098 | output_stream << "\t\t status " << ownership_status_to_string(mStatus) << "\n"; | ||
1099 | output_stream << "\t\t category " << category_to_string(mCategory) << "\n"; | ||
1100 | |||
1101 | output_stream << "\t\t local_id " << mLocalID << "\n"; | ||
1102 | |||
1103 | const char* name = (mName.empty() ? "" : mName.c_str() ); | ||
1104 | output_stream << "\t\t name " << name << "\n"; | ||
1105 | |||
1106 | const char* desc = (mDesc.empty() ? "" : mDesc.c_str() ); | ||
1107 | output_stream << "\t\t desc " << desc << "\n"; | ||
1108 | |||
1109 | const char* music_url = (mMusicURL.empty() ? "" : mMusicURL.c_str() ); | ||
1110 | output_stream << "\t\t music_url " << music_url << "\n"; | ||
1111 | |||
1112 | const char* media_url = (mMediaURL.empty() ? "" : mMediaURL.c_str() ); | ||
1113 | output_stream << "\t\t media_url " << media_url << "\n"; | ||
1114 | |||
1115 | const char* media_type = (mMediaType.empty() ? "" : mMediaType.c_str() ); | ||
1116 | output_stream << "\t\t media_type " << media_type << "\n"; | ||
1117 | |||
1118 | const char* media_desc = (mMediaDesc.empty() ? "" : mMediaDesc.c_str() ); | ||
1119 | output_stream << "\t\t media_desc " << media_desc << "\n"; | ||
1120 | |||
1121 | output_stream << "\t\t media_auto_scale " << (mMediaAutoScale ? 1 : 0) << "\n"; | ||
1122 | output_stream << "\t\t media_loop " << (mMediaLoop ? 1 : 0) << "\n"; | ||
1123 | output_stream << "\t\t obscure_media " << (mObscureMedia ? 1 : 0) << "\n"; | ||
1124 | output_stream << "\t\t obscure_music " << (mObscureMusic ? 1 : 0) << "\n"; | ||
1125 | |||
1126 | mMediaID.toString(id_string); | ||
1127 | output_stream << "\t\t media_id " << id_string << "\n"; | ||
1128 | |||
1129 | output_stream << "\t\t media_width " << mMediaWidth << "\n"; | ||
1130 | output_stream << "\t\t media_height " << mMediaHeight << "\n"; | ||
1131 | |||
1132 | mOwnerID.toString(id_string); | ||
1133 | output_stream << "\t\t owner_id " << id_string << "\n"; | ||
1134 | output_stream << "\t\t group_owned " << (mGroupOwned ? 1 : 0) << "\n"; | ||
1135 | output_stream << "\t\t clean_other_time " << getCleanOtherTime() << "\n"; | ||
1136 | |||
1137 | if(!mAuthBuyerID.isNull()) | ||
1138 | { | ||
1139 | mAuthBuyerID.toString(id_string); | ||
1140 | output_stream << "\t\t auth_buyer_id " << id_string << "\n"; | ||
1141 | } | ||
1142 | if (!mSnapshotID.isNull()) | ||
1143 | { | ||
1144 | mSnapshotID.toString(id_string); | ||
1145 | output_stream << "\t\t snapshot_id " << id_string << "\n"; | ||
1146 | } | ||
1147 | if (!mUserLocation.isExactlyZero()) | ||
1148 | { | ||
1149 | output_stream << "\t\t user_location " | ||
1150 | << (F64)mUserLocation.mV[VX] | ||
1151 | << " " << (F64)mUserLocation.mV[VY] | ||
1152 | << " " << (F64)mUserLocation.mV[VZ] << "\n"; | ||
1153 | output_stream << "\t\t user_look_at " | ||
1154 | << (F64)mUserLookAt.mV[VX] | ||
1155 | << " " << (F64)mUserLookAt.mV[VY] | ||
1156 | << " " << (F64)mUserLookAt.mV[VZ] << "\n"; | ||
1157 | } | ||
1158 | output_stream << "\t\t landing_type " << mLandingType << "\n"; | ||
1159 | //if(mJoinNeighbors) | ||
1160 | //{ | ||
1161 | // output_stream << "\t\t join_neighbors " << mJoinNeighbors << "\n"; | ||
1162 | //} | ||
1163 | if(mSaleTimerExpires.getStarted()) | ||
1164 | { | ||
1165 | S32 dt_sec = (S32) mSaleTimerExpires.getRemainingTimeF32()+60; // Add a minute to prevent race conditions | ||
1166 | output_stream << "\t\t revert_sale " << dt_sec << "\n"; | ||
1167 | //output_stream << "\t\t revert_action " << revert_action_to_string(mExpireAction) << "\n"; | ||
1168 | output_stream << "\t\t extended_grace " << mGraceExtension << "\n"; | ||
1169 | } | ||
1170 | |||
1171 | if(0 != mAuctionID) | ||
1172 | { | ||
1173 | output_stream << "\t\t auction_id " << mAuctionID << "\n"; | ||
1174 | } | ||
1175 | |||
1176 | output_stream << "\t\t allow_modify " << getAllowModify() << "\n"; | ||
1177 | output_stream << "\t\t allow_group_modify " << getAllowGroupModify() << "\n"; | ||
1178 | output_stream << "\t\t allow_all_object_entry " << getAllowAllObjectEntry() << "\n"; | ||
1179 | output_stream << "\t\t allow_group_object_entry " << getAllowGroupObjectEntry() << "\n"; | ||
1180 | output_stream << "\t\t allow_terraform " << getAllowTerraform() << "\n"; | ||
1181 | output_stream << "\t\t allow_deed_to_group " << getAllowDeedToGroup() << "\n"; | ||
1182 | output_stream << "\t\t contribute_with_deed " << getContributeWithDeed() << "\n"; | ||
1183 | output_stream << "\t\t allow_damage " << getAllowDamage() << "\n"; | ||
1184 | output_stream << "\t\t claim_date " << (S32)mClaimDate << "\n"; | ||
1185 | output_stream << "\t\t claim_price " << mClaimPricePerMeter << "\n"; | ||
1186 | output_stream << "\t\t rent_price " << mRentPricePerMeter << "\n"; | ||
1187 | output_stream << "\t\t discount_rate " << mDiscountRate << "\n"; | ||
1188 | output_stream << "\t\t allow_fly " << (getAllowFly() ? 1 : 0) << "\n"; | ||
1189 | output_stream << "\t\t allow_landmark " << (getAllowLandmark() ? 1 : 0) << "\n"; | ||
1190 | output_stream << "\t\t sound_local " << (getSoundLocal() ? 1 : 0) << "\n"; | ||
1191 | output_stream << "\t\t allow_scripts " << (getAllowOtherScripts() ? 1 : 0) << "\n"; | ||
1192 | output_stream << "\t\t allow_group_scripts " << (getAllowGroupScripts() ? 1 : 0) << "\n"; | ||
1193 | output_stream << "\t\t use_estate_voice_chan " << (getParcelFlagUseEstateVoiceChannel() ? 1 : 0) << "\n"; | ||
1194 | |||
1195 | output_stream << "\t\t allow_voice_chat " << (getParcelFlagAllowVoice() ? 1 : 0) << "\n"; | ||
1196 | output_stream << "\t\t use_estate_voice_chan " << (getParcelFlagUseEstateVoiceChannel() ? 1 : 0) << "\n"; | ||
1197 | output_stream << "\t\t for_sale " << (getForSale() ? 1 : 0) << "\n"; | ||
1198 | output_stream << "\t\t sell_w_objects " << (getSellWithObjects() ? 1 : 0) << "\n"; | ||
1199 | output_stream << "\t\t draw_distance " << mDrawDistance << "\n"; | ||
1200 | output_stream << "\t\t sale_price " << mSalePrice << "\n"; | ||
1201 | |||
1202 | setting = (getParcelFlag(PF_USE_ACCESS_GROUP) ? 1 : 0); | ||
1203 | output_stream << "\t\t use_access_group " << setting << "\n"; | ||
1204 | |||
1205 | setting = (getParcelFlag(PF_USE_ACCESS_LIST) ? 1 : 0); | ||
1206 | output_stream << "\t\t use_access_list " << setting << "\n"; | ||
1207 | |||
1208 | setting = (getParcelFlag(PF_USE_BAN_LIST) ? 1 : 0); | ||
1209 | output_stream << "\t\t use_ban_list " << setting << "\n"; | ||
1210 | |||
1211 | mGroupID.toString(id_string); | ||
1212 | output_stream << "\t\t group_id " << id_string << "\n"; | ||
1213 | |||
1214 | //const char* group_name | ||
1215 | // = (mGroupName.isEmpty() ? "" : mGroupName.c_str() ); | ||
1216 | //output_stream << "\t\t group_name " << group_name << "\n"; | ||
1217 | |||
1218 | setting = (getParcelFlag(PF_USE_PASS_LIST) ? 1 : 0); | ||
1219 | output_stream << "\t\t use_pass_list " << setting << "\n"; | ||
1220 | |||
1221 | output_stream << "\t\t pass_price " << mPassPrice << "\n"; | ||
1222 | output_stream << "\t\t pass_hours " << mPassHours << "\n"; | ||
1223 | |||
1224 | setting = (getParcelFlag(PF_SHOW_DIRECTORY) ? 1 : 0); | ||
1225 | output_stream << "\t\t show_directory " << setting << "\n"; | ||
1226 | |||
1227 | setting = (getParcelFlag(PF_ALLOW_PUBLISH) ? 1 : 0); | ||
1228 | output_stream << "\t\t allow_publish " << setting << "\n"; | ||
1229 | |||
1230 | setting = (getParcelFlag(PF_MATURE_PUBLISH) ? 1 : 0); | ||
1231 | output_stream << "\t\t mature_publish " << setting << "\n"; | ||
1232 | |||
1233 | setting = (getParcelFlag(PF_DENY_ANONYMOUS) ? 1 : 0); | ||
1234 | output_stream << "\t\t deny_anonymous " << setting << "\n"; | ||
1235 | |||
1236 | // setting = (getParcelFlag(PF_DENY_IDENTIFIED) ? 1 : 0); | ||
1237 | // output_stream << "\t\t deny_identified " << setting << "\n"; | ||
1238 | |||
1239 | // setting = (getParcelFlag(PF_DENY_TRANSACTED) ? 1 : 0); | ||
1240 | // output_stream << "\t\t deny_transacted " << setting << "\n"; | ||
1241 | |||
1242 | setting = (getParcelFlag(PF_DENY_AGEUNVERIFIED) ? 1 : 0); | ||
1243 | output_stream << "\t\t deny_age_unverified " << setting << "\n"; | ||
1244 | |||
1245 | setting = (getParcelFlag(PF_RESTRICT_PUSHOBJECT) ? 1 : 0); | ||
1246 | output_stream << "\t\t restrict_pushobject " << setting << "\n"; | ||
1247 | |||
1248 | output_stream << "\t\t aabb_min " | ||
1249 | << mAABBMin.mV[VX] | ||
1250 | << " " << mAABBMin.mV[VY] | ||
1251 | << " " << mAABBMin.mV[VZ] << "\n"; | ||
1252 | |||
1253 | if (!mAccessList.empty()) | ||
1254 | { | ||
1255 | output_stream << "\t\t access_list " << mAccessList.size() << "\n"; | ||
1256 | access_map_const_iterator cit = mAccessList.begin(); | ||
1257 | access_map_const_iterator end = mAccessList.end(); | ||
1258 | |||
1259 | for ( ; cit != end; ++cit) | ||
1260 | { | ||
1261 | output_stream << "\t\t{\n"; | ||
1262 | const LLAccessEntry& entry = (*cit).second; | ||
1263 | entry.mID.toString(id_string); | ||
1264 | output_stream << "\t\t\tid " << id_string << "\n"; | ||
1265 | output_stream << "\t\t\ttime " << entry.mTime << "\n"; | ||
1266 | output_stream << "\t\t\tflags " << entry.mFlags << "\n"; | ||
1267 | output_stream << "\t\t}\n"; | ||
1268 | } | ||
1269 | } | ||
1270 | |||
1271 | if (!mBanList.empty()) | ||
1272 | { | ||
1273 | output_stream << "\t\t ban_list " << mBanList.size() << "\n"; | ||
1274 | access_map_const_iterator cit = mBanList.begin(); | ||
1275 | access_map_const_iterator end = mBanList.end(); | ||
1276 | |||
1277 | for ( ; cit != end; ++cit) | ||
1278 | { | ||
1279 | output_stream << "\t\t{\n"; | ||
1280 | const LLAccessEntry& entry = (*cit).second; | ||
1281 | entry.mID.toString(id_string); | ||
1282 | output_stream << "\t\t\tid " << id_string << "\n"; | ||
1283 | output_stream << "\t\t\ttime " << entry.mTime << "\n"; | ||
1284 | output_stream << "\t\t\tflags " << entry.mFlags << "\n"; | ||
1285 | output_stream << "\t\t}\n"; | ||
1286 | } | ||
1287 | } | ||
1288 | |||
1289 | /*if (mRenterList.count() > 0) | ||
1290 | { | ||
1291 | output_stream << "\t\t renter_list " << mRenterList.count() << "\n"; | ||
1292 | for (i = 0; i < mRenterList.count(); i++) | ||
1293 | { | ||
1294 | output_stream << "\t\t{\n"; | ||
1295 | const LLAccessEntry& entry = mRenterList.get(i); | ||
1296 | entry.mID.toString(id_string); | ||
1297 | output_stream << "\t\t\tid " << id_string << "\n"; | ||
1298 | output_stream << "\t\t\ttime " << entry.mTime << "\n"; | ||
1299 | output_stream << "\t\t\tflags " << entry.mFlags << "\n"; | ||
1300 | output_stream << "\t\t}\n"; | ||
1301 | } | ||
1302 | }*/ | ||
1303 | |||
1304 | output_stream << "\t}\n"; | ||
1305 | output_stream.flags(old_flags); | ||
1306 | |||
1307 | return TRUE; | ||
1308 | } | ||
1309 | |||
1310 | |||
1311 | // Assumes we are in a block "ParcelData" | 571 | // Assumes we are in a block "ParcelData" |
1312 | void LLParcel::packMessage(LLMessageSystem* msg) | 572 | void LLParcel::packMessage(LLMessageSystem* msg) |
1313 | { | 573 | { |
diff --git a/linden/indra/llinventory/llparcel.h b/linden/indra/llinventory/llparcel.h index 90d0d04..6f5ae87 100644 --- a/linden/indra/llinventory/llparcel.h +++ b/linden/indra/llinventory/llparcel.h | |||
@@ -16,7 +16,8 @@ | |||
16 | * There are special exceptions to the terms and conditions of the GPL as | 16 | * There are special exceptions to the terms and conditions of the GPL as |
17 | * it is applied to this Source Code. View the full text of the exception | 17 | * it is applied to this Source Code. View the full text of the exception |
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 18 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 19 | * online at |
20 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | 21 | * |
21 | * By copying, modifying or distributing this software, you acknowledge | 22 | * By copying, modifying or distributing this software, you acknowledge |
22 | * that you have read and understood your obligations described above, | 23 | * that you have read and understood your obligations described above, |
@@ -102,6 +103,32 @@ const U32 RT_OTHER = 0x1 << 3; | |||
102 | const U32 RT_LIST = 0x1 << 4; | 103 | const U32 RT_LIST = 0x1 << 4; |
103 | const U32 RT_SELL = 0x1 << 5; | 104 | const U32 RT_SELL = 0x1 << 5; |
104 | 105 | ||
106 | |||
107 | // Timeouts for parcels | ||
108 | // default is 21 days * 24h/d * 60m/h * 60s/m *1000000 usec/s = 1814400000000 | ||
109 | const U64 DEFAULT_USEC_CONVERSION_TIMEOUT = U64L(1814400000000); | ||
110 | // ***** TESTING is 10 minutes | ||
111 | //const U64 DEFAULT_USEC_CONVERSION_TIMEOUT = U64L(600000000); | ||
112 | |||
113 | // group is 60 days * 24h/d * 60m/h * 60s/m *1000000 usec/s = 5184000000000 | ||
114 | const U64 GROUP_USEC_CONVERSION_TIMEOUT = U64L(5184000000000); | ||
115 | // ***** TESTING is 10 minutes | ||
116 | //const U64 GROUP_USEC_CONVERSION_TIMEOUT = U64L(600000000); | ||
117 | |||
118 | // default sale timeout is 2 days -> 172800000000 | ||
119 | const U64 DEFAULT_USEC_SALE_TIMEOUT = U64L(172800000000); | ||
120 | // ***** TESTING is 10 minutes | ||
121 | //const U64 DEFAULT_USEC_SALE_TIMEOUT = U64L(600000000); | ||
122 | |||
123 | // more grace period extensions. | ||
124 | const U64 SEVEN_DAYS_IN_USEC = U64L(604800000000); | ||
125 | |||
126 | // if more than 100,000s before sale revert, and no extra extension | ||
127 | // has been given, go ahead and extend it more. That's about 1.2 days. | ||
128 | const S32 EXTEND_GRACE_IF_MORE_THAN_SEC = 100000; | ||
129 | |||
130 | |||
131 | |||
105 | class LLMessageSystem; | 132 | class LLMessageSystem; |
106 | class LLSD; | 133 | class LLSD; |
107 | 134 | ||
@@ -242,7 +269,7 @@ public: | |||
242 | void setAllParcelFlags(U32 flags); | 269 | void setAllParcelFlags(U32 flags); |
243 | void setParcelFlag(U32 flag, BOOL b); | 270 | void setParcelFlag(U32 flag, BOOL b); |
244 | 271 | ||
245 | void setArea(S32 area, S32 sim_object_limit); | 272 | virtual void setArea(S32 area, S32 sim_object_limit); |
246 | void setDiscountRate(F32 rate); | 273 | void setDiscountRate(F32 rate); |
247 | 274 | ||
248 | void setAllowModify(BOOL b) { setParcelFlag(PF_CREATE_OBJECTS, b); } | 275 | void setAllowModify(BOOL b) { setParcelFlag(PF_CREATE_OBJECTS, b); } |
@@ -270,9 +297,9 @@ public: | |||
270 | void setPassPrice(S32 price) { mPassPrice = price; } | 297 | void setPassPrice(S32 price) { mPassPrice = price; } |
271 | void setPassHours(F32 hours) { mPassHours = hours; } | 298 | void setPassHours(F32 hours) { mPassHours = hours; } |
272 | 299 | ||
273 | BOOL importStream(std::istream& input_stream); | 300 | // BOOL importStream(std::istream& input_stream); |
274 | BOOL importAccessEntry(std::istream& input_stream, LLAccessEntry* entry); | 301 | BOOL importAccessEntry(std::istream& input_stream, LLAccessEntry* entry); |
275 | BOOL exportStream(std::ostream& output_stream); | 302 | // BOOL exportStream(std::ostream& output_stream); |
276 | 303 | ||
277 | void packMessage(LLMessageSystem* msg); | 304 | void packMessage(LLMessageSystem* msg); |
278 | void packMessage(LLSD& msg); | 305 | void packMessage(LLSD& msg); |
@@ -632,4 +659,10 @@ public: | |||
632 | }; | 659 | }; |
633 | 660 | ||
634 | 661 | ||
662 | const std::string& ownership_status_to_string(LLParcel::EOwnershipStatus status); | ||
663 | LLParcel::EOwnershipStatus ownership_string_to_status(const std::string& s); | ||
664 | LLParcel::ECategory category_string_to_category(const std::string& s); | ||
665 | const std::string& category_to_string(LLParcel::ECategory category); | ||
666 | |||
667 | |||
635 | #endif | 668 | #endif |
diff --git a/linden/indra/llinventory/llparcelflags.h b/linden/indra/llinventory/llparcelflags.h index 4cc9500..a1bd85f 100644 --- a/linden/indra/llinventory/llparcelflags.h +++ b/linden/indra/llinventory/llparcelflags.h | |||
@@ -16,7 +16,8 @@ | |||
16 | * There are special exceptions to the terms and conditions of the GPL as | 16 | * There are special exceptions to the terms and conditions of the GPL as |
17 | * it is applied to this Source Code. View the full text of the exception | 17 | * it is applied to this Source Code. View the full text of the exception |
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 18 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 19 | * online at |
20 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | 21 | * |
21 | * By copying, modifying or distributing this software, you acknowledge | 22 | * By copying, modifying or distributing this software, you acknowledge |
22 | * that you have read and understood your obligations described above, | 23 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/llpermissions.cpp b/linden/indra/llinventory/llpermissions.cpp index 684a618..328ed45 100644 --- a/linden/indra/llinventory/llpermissions.cpp +++ b/linden/indra/llinventory/llpermissions.cpp | |||
@@ -18,7 +18,8 @@ | |||
18 | * There are special exceptions to the terms and conditions of the GPL as | 18 | * There are special exceptions to the terms and conditions of the GPL as |
19 | * it is applied to this Source Code. View the full text of the exception | 19 | * it is applied to this Source Code. View the full text of the exception |
20 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 20 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
21 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 21 | * online at |
22 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
22 | * | 23 | * |
23 | * By copying, modifying or distributing this software, you acknowledge | 24 | * By copying, modifying or distributing this software, you acknowledge |
24 | * that you have read and understood your obligations described above, | 25 | * that you have read and understood your obligations described above, |
@@ -276,6 +277,15 @@ BOOL LLPermissions::setOwnerAndGroup( | |||
276 | return allowed; | 277 | return allowed; |
277 | } | 278 | } |
278 | 279 | ||
280 | // only call this if you know what you're doing | ||
281 | // there are usually perm-bit consequences when the | ||
282 | // ownerhsip changes | ||
283 | void LLPermissions::yesReallySetOwner(const LLUUID& owner, bool group_owned) | ||
284 | { | ||
285 | mOwner = owner; | ||
286 | mIsGroupOwned = group_owned; | ||
287 | } | ||
288 | |||
279 | BOOL LLPermissions::deedToGroup(const LLUUID& agent, const LLUUID& group) | 289 | BOOL LLPermissions::deedToGroup(const LLUUID& agent, const LLUUID& group) |
280 | { | 290 | { |
281 | if(group.notNull() && (agent.isNull() || ((group == mGroup) | 291 | if(group.notNull() && (agent.isNull() || ((group == mGroup) |
diff --git a/linden/indra/llinventory/llpermissions.h b/linden/indra/llinventory/llpermissions.h index c1eb207..5587f8c 100644 --- a/linden/indra/llinventory/llpermissions.h +++ b/linden/indra/llinventory/llpermissions.h | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
@@ -223,6 +224,11 @@ public: | |||
223 | // item. | 224 | // item. |
224 | BOOL setOwnerAndGroup(const LLUUID& agent, const LLUUID& owner, const LLUUID& group, bool is_atomic); | 225 | BOOL setOwnerAndGroup(const LLUUID& agent, const LLUUID& owner, const LLUUID& group, bool is_atomic); |
225 | 226 | ||
227 | // only call this if you know what you're doing | ||
228 | // there are usually perm-bit consequences when the | ||
229 | // ownerhsip changes | ||
230 | void yesReallySetOwner(const LLUUID& owner, bool group_owned); | ||
231 | |||
226 | // saves last owner, sets owner to uuid null, sets group | 232 | // saves last owner, sets owner to uuid null, sets group |
227 | // owned. group_id must be the group of the object (that's who it | 233 | // owned. group_id must be the group of the object (that's who it |
228 | // is being deeded to) and the object must be group | 234 | // is being deeded to) and the object must be group |
diff --git a/linden/indra/llinventory/llpermissionsflags.h b/linden/indra/llinventory/llpermissionsflags.h index 16eb444..afa2adb 100644 --- a/linden/indra/llinventory/llpermissionsflags.h +++ b/linden/indra/llinventory/llpermissionsflags.h | |||
@@ -16,7 +16,8 @@ | |||
16 | * There are special exceptions to the terms and conditions of the GPL as | 16 | * There are special exceptions to the terms and conditions of the GPL as |
17 | * it is applied to this Source Code. View the full text of the exception | 17 | * it is applied to this Source Code. View the full text of the exception |
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 18 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 19 | * online at |
20 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | 21 | * |
21 | * By copying, modifying or distributing this software, you acknowledge | 22 | * By copying, modifying or distributing this software, you acknowledge |
22 | * that you have read and understood your obligations described above, | 23 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/llsaleinfo.cpp b/linden/indra/llinventory/llsaleinfo.cpp index 10182a6..11709bc 100644 --- a/linden/indra/llinventory/llsaleinfo.cpp +++ b/linden/indra/llinventory/llsaleinfo.cpp | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/llsaleinfo.h b/linden/indra/llinventory/llsaleinfo.h index 60dcfc6..07f4405 100644 --- a/linden/indra/llinventory/llsaleinfo.h +++ b/linden/indra/llinventory/llsaleinfo.h | |||
@@ -17,7 +17,8 @@ | |||
17 | * There are special exceptions to the terms and conditions of the GPL as | 17 | * There are special exceptions to the terms and conditions of the GPL as |
18 | * it is applied to this Source Code. View the full text of the exception | 18 | * it is applied to this Source Code. View the full text of the exception |
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 19 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
20 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 20 | * online at |
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
21 | * | 22 | * |
22 | * By copying, modifying or distributing this software, you acknowledge | 23 | * By copying, modifying or distributing this software, you acknowledge |
23 | * that you have read and understood your obligations described above, | 24 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/lltransactionflags.cpp b/linden/indra/llinventory/lltransactionflags.cpp index a3ced5c..e0f87aa 100644 --- a/linden/indra/llinventory/lltransactionflags.cpp +++ b/linden/indra/llinventory/lltransactionflags.cpp | |||
@@ -18,7 +18,8 @@ | |||
18 | * There are special exceptions to the terms and conditions of the GPL as | 18 | * There are special exceptions to the terms and conditions of the GPL as |
19 | * it is applied to this Source Code. View the full text of the exception | 19 | * it is applied to this Source Code. View the full text of the exception |
20 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 20 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
21 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 21 | * online at |
22 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
22 | * | 23 | * |
23 | * By copying, modifying or distributing this software, you acknowledge | 24 | * By copying, modifying or distributing this software, you acknowledge |
24 | * that you have read and understood your obligations described above, | 25 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/lltransactionflags.h b/linden/indra/llinventory/lltransactionflags.h index c892b3a..75f1d12 100644 --- a/linden/indra/llinventory/lltransactionflags.h +++ b/linden/indra/llinventory/lltransactionflags.h | |||
@@ -16,7 +16,8 @@ | |||
16 | * There are special exceptions to the terms and conditions of the GPL as | 16 | * There are special exceptions to the terms and conditions of the GPL as |
17 | * it is applied to this Source Code. View the full text of the exception | 17 | * it is applied to this Source Code. View the full text of the exception |
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 18 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 19 | * online at |
20 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | 21 | * |
21 | * By copying, modifying or distributing this software, you acknowledge | 22 | * By copying, modifying or distributing this software, you acknowledge |
22 | * that you have read and understood your obligations described above, | 23 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/lltransactiontypes.h b/linden/indra/llinventory/lltransactiontypes.h index 48f7b39..d701098 100644 --- a/linden/indra/llinventory/lltransactiontypes.h +++ b/linden/indra/llinventory/lltransactiontypes.h | |||
@@ -16,7 +16,8 @@ | |||
16 | * There are special exceptions to the terms and conditions of the GPL as | 16 | * There are special exceptions to the terms and conditions of the GPL as |
17 | * it is applied to this Source Code. View the full text of the exception | 17 | * it is applied to this Source Code. View the full text of the exception |
18 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 18 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
19 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 19 | * online at |
20 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
20 | * | 21 | * |
21 | * By copying, modifying or distributing this software, you acknowledge | 22 | * By copying, modifying or distributing this software, you acknowledge |
22 | * that you have read and understood your obligations described above, | 23 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/lluserrelations.cpp b/linden/indra/llinventory/lluserrelations.cpp index 2905a1a..8d6bfc6 100644 --- a/linden/indra/llinventory/lluserrelations.cpp +++ b/linden/indra/llinventory/lluserrelations.cpp | |||
@@ -19,7 +19,8 @@ | |||
19 | * There are special exceptions to the terms and conditions of the GPL as | 19 | * There are special exceptions to the terms and conditions of the GPL as |
20 | * it is applied to this Source Code. View the full text of the exception | 20 | * it is applied to this Source Code. View the full text of the exception |
21 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 21 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
22 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 22 | * online at |
23 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
23 | * | 24 | * |
24 | * By copying, modifying or distributing this software, you acknowledge | 25 | * By copying, modifying or distributing this software, you acknowledge |
25 | * that you have read and understood your obligations described above, | 26 | * that you have read and understood your obligations described above, |
diff --git a/linden/indra/llinventory/lluserrelations.h b/linden/indra/llinventory/lluserrelations.h index 669706c..1682f50 100644 --- a/linden/indra/llinventory/lluserrelations.h +++ b/linden/indra/llinventory/lluserrelations.h | |||
@@ -19,7 +19,8 @@ | |||
19 | * There are special exceptions to the terms and conditions of the GPL as | 19 | * There are special exceptions to the terms and conditions of the GPL as |
20 | * it is applied to this Source Code. View the full text of the exception | 20 | * it is applied to this Source Code. View the full text of the exception |
21 | * in the file doc/FLOSS-exception.txt in this software distribution, or | 21 | * in the file doc/FLOSS-exception.txt in this software distribution, or |
22 | * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception | 22 | * online at |
23 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
23 | * | 24 | * |
24 | * By copying, modifying or distributing this software, you acknowledge | 25 | * By copying, modifying or distributing this software, you acknowledge |
25 | * that you have read and understood your obligations described above, | 26 | * that you have read and understood your obligations described above, |