aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llinventory
diff options
context:
space:
mode:
authorJacek Antonelli2008-08-15 23:45:34 -0500
committerJacek Antonelli2008-08-15 23:45:34 -0500
commitcd17687f01420952712a500107e0f93e7ab8d5f8 (patch)
treece48c2b706f2c1176290e39fb555fbdf6648ce01 /linden/indra/llinventory
parentSecond Life viewer sources 1.19.0.5 (diff)
downloadmeta-impy-cd17687f01420952712a500107e0f93e7ab8d5f8.zip
meta-impy-cd17687f01420952712a500107e0f93e7ab8d5f8.tar.gz
meta-impy-cd17687f01420952712a500107e0f93e7ab8d5f8.tar.bz2
meta-impy-cd17687f01420952712a500107e0f93e7ab8d5f8.tar.xz
Second Life viewer sources 1.19.1.0
Diffstat (limited to 'linden/indra/llinventory')
-rw-r--r--linden/indra/llinventory/llinventory.cpp70
-rw-r--r--linden/indra/llinventory/llinventory.h4
-rw-r--r--linden/indra/llinventory/llinventory_vc8.vcproj694
-rw-r--r--linden/indra/llinventory/llinventory_vc9.vcproj696
-rw-r--r--linden/indra/llinventory/llparcel.cpp1409
-rw-r--r--linden/indra/llinventory/llparcel.h22
-rw-r--r--linden/indra/llinventory/llpermissions.cpp33
-rw-r--r--linden/indra/llinventory/llpermissions.h3
-rw-r--r--linden/indra/llinventory/llsaleinfo.cpp21
-rw-r--r--linden/indra/llinventory/llsaleinfo.h3
10 files changed, 1616 insertions, 1339 deletions
diff --git a/linden/indra/llinventory/llinventory.cpp b/linden/indra/llinventory/llinventory.cpp
index 3e3290c..e6c1175 100644
--- a/linden/indra/llinventory/llinventory.cpp
+++ b/linden/indra/llinventory/llinventory.cpp
@@ -54,6 +54,7 @@ static const std::string INV_INVENTORY_TYPE_LABEL("inv_type");
54static const std::string INV_NAME_LABEL("name"); 54static const std::string INV_NAME_LABEL("name");
55static const std::string INV_DESC_LABEL("desc"); 55static const std::string INV_DESC_LABEL("desc");
56static const std::string INV_PERMISSIONS_LABEL("permissions"); 56static const std::string INV_PERMISSIONS_LABEL("permissions");
57static const std::string INV_SHADOW_ID_LABEL("shadow_id");
57static const std::string INV_ASSET_ID_LABEL("asset_id"); 58static const std::string INV_ASSET_ID_LABEL("asset_id");
58static const std::string INV_SALE_INFO_LABEL("sale_info"); 59static const std::string INV_SALE_INFO_LABEL("sale_info");
59static const std::string INV_FLAGS_LABEL("flags"); 60static const std::string INV_FLAGS_LABEL("flags");
@@ -927,34 +928,34 @@ BOOL LLInventoryItem::exportLegacyStream(std::ostream& output_stream, BOOL inclu
927LLSD LLInventoryItem::asLLSD() const 928LLSD LLInventoryItem::asLLSD() const
928{ 929{
929 LLSD sd = LLSD(); 930 LLSD sd = LLSD();
930 sd["item_id"] = mUUID; 931 sd[INV_ITEM_ID_LABEL] = mUUID;
931 sd["parent_id"] = mParentUUID; 932 sd[INV_PARENT_ID_LABEL] = mParentUUID;
932 sd["permissions"] = ll_create_sd_from_permissions(mPermissions); 933 sd[INV_PERMISSIONS_LABEL] = ll_create_sd_from_permissions(mPermissions);
933 934
934 U32 mask = mPermissions.getMaskBase(); 935 U32 mask = mPermissions.getMaskBase();
935 if(((mask & PERM_ITEM_UNRESTRICTED) == PERM_ITEM_UNRESTRICTED) 936 if(((mask & PERM_ITEM_UNRESTRICTED) == PERM_ITEM_UNRESTRICTED)
936 || (mAssetUUID.isNull())) 937 || (mAssetUUID.isNull()))
937 { 938 {
938 sd["asset_id"] = mAssetUUID; 939 sd[INV_ASSET_ID_LABEL] = mAssetUUID;
939 } 940 }
940 else 941 else
941 { 942 {
942 LLUUID shadow_id(mAssetUUID); 943 LLUUID shadow_id(mAssetUUID);
943 LLXORCipher cipher(MAGIC_ID.mData, UUID_BYTES); 944 LLXORCipher cipher(MAGIC_ID.mData, UUID_BYTES);
944 cipher.encrypt(shadow_id.mData, UUID_BYTES); 945 cipher.encrypt(shadow_id.mData, UUID_BYTES);
945 sd["shadow_id"] = shadow_id; 946 sd[INV_SHADOW_ID_LABEL] = shadow_id;
946 } 947 }
947 sd["type"] = LLAssetType::lookup(mType); 948 sd[INV_ASSET_TYPE_LABEL] = LLAssetType::lookup(mType);
948 const char* inv_type_str = LLInventoryType::lookup(mInventoryType); 949 const char* inv_type_str = LLInventoryType::lookup(mInventoryType);
949 if(inv_type_str) 950 if(inv_type_str)
950 { 951 {
951 sd["inv_type"] = inv_type_str; 952 sd[INV_INVENTORY_TYPE_LABEL] = inv_type_str;
952 } 953 }
953 sd["flags"] = ll_sd_from_U32(mFlags); 954 sd[INV_FLAGS_LABEL] = ll_sd_from_U32(mFlags);
954 sd["sale_info"] = mSaleInfo; 955 sd[INV_SALE_INFO_LABEL] = mSaleInfo;
955 sd["name"] = mName; 956 sd[INV_NAME_LABEL] = mName;
956 sd["desc"] = mDescription; 957 sd[INV_DESC_LABEL] = mDescription;
957 sd["creation_date"] = mCreationDate; 958 sd[INV_CREATION_DATE_LABEL] = mCreationDate;
958 959
959 return sd; 960 return sd;
960} 961}
@@ -1007,7 +1008,7 @@ bool LLInventoryItem::fromLLSD(LLSD& sd)
1007 mPermissions.setMaskNext(perm_mask); 1008 mPermissions.setMaskNext(perm_mask);
1008 } 1009 }
1009 } 1010 }
1010 w = "shadow_id"; 1011 w = INV_SHADOW_ID_LABEL;
1011 if (sd.has(w)) 1012 if (sd.has(w))
1012 { 1013 {
1013 mAssetUUID = sd[w]; 1014 mAssetUUID = sd[w];
@@ -1357,6 +1358,19 @@ void LLInventoryCategory::setPreferredType(LLAssetType::EType type)
1357 mPreferredType = type; 1358 mPreferredType = type;
1358} 1359}
1359 1360
1361LLSD LLInventoryCategory::asLLSD() const
1362{
1363 LLSD sd = LLSD();
1364 sd["item_id"] = mUUID;
1365 sd["parent_id"] = mParentUUID;
1366 S8 type = static_cast<S8>(mPreferredType);
1367 sd["type"] = type;
1368 sd["name"] = mName;
1369
1370 return sd;
1371}
1372
1373
1360// virtual 1374// virtual
1361void LLInventoryCategory::packMessage(LLMessageSystem* msg) const 1375void LLInventoryCategory::packMessage(LLMessageSystem* msg) const
1362{ 1376{
@@ -1367,6 +1381,36 @@ void LLInventoryCategory::packMessage(LLMessageSystem* msg) const
1367 msg->addStringFast(_PREHASH_Name, mName); 1381 msg->addStringFast(_PREHASH_Name, mName);
1368} 1382}
1369 1383
1384bool LLInventoryCategory::fromLLSD(LLSD& sd)
1385{
1386 std::string w;
1387
1388 w = INV_ITEM_ID_LABEL;
1389 if (sd.has(w))
1390 {
1391 mUUID = sd[w];
1392 }
1393 w = INV_PARENT_ID_LABEL;
1394 if (sd.has(w))
1395 {
1396 mParentUUID = sd[w];
1397 }
1398 w = INV_ASSET_TYPE_LABEL;
1399 if (sd.has(w))
1400 {
1401 S8 type = (U8)sd[w].asInteger();
1402 mPreferredType = static_cast<LLAssetType::EType>(type);
1403 }
1404 w = INV_NAME_LABEL;
1405 if (sd.has(w))
1406 {
1407 mName = sd[w].asString();
1408 LLString::replaceNonstandardASCII(mName, ' ');
1409 LLString::replaceChar(mName, '|', ' ');
1410 }
1411 return true;
1412}
1413
1370// virtual 1414// virtual
1371void LLInventoryCategory::unpackMessage(LLMessageSystem* msg, 1415void LLInventoryCategory::unpackMessage(LLMessageSystem* msg,
1372 const char* block, 1416 const char* block,
diff --git a/linden/indra/llinventory/llinventory.h b/linden/indra/llinventory/llinventory.h
index 76d439b..3662d63 100644
--- a/linden/indra/llinventory/llinventory.h
+++ b/linden/indra/llinventory/llinventory.h
@@ -230,7 +230,6 @@ public:
230 // network ok. It uses a simple crc check which is defeatable, but 230 // network ok. It uses a simple crc check which is defeatable, but
231 // we want to detect network mangling somehow. 231 // we want to detect network mangling somehow.
232 virtual BOOL unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0); 232 virtual BOOL unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0);
233
234 // file support 233 // file support
235 virtual BOOL importFile(FILE* fp); 234 virtual BOOL importFile(FILE* fp);
236 virtual BOOL exportFile(FILE* fp, BOOL include_asset_key = TRUE) const; 235 virtual BOOL exportFile(FILE* fp, BOOL include_asset_key = TRUE) const;
@@ -288,6 +287,9 @@ public:
288 virtual void packMessage(LLMessageSystem* msg) const; 287 virtual void packMessage(LLMessageSystem* msg) const;
289 virtual void unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0); 288 virtual void unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0);
290 289
290 LLSD asLLSD() const;
291 bool fromLLSD(LLSD& sd);
292
291 // file support 293 // file support
292 virtual BOOL importFile(FILE* fp); 294 virtual BOOL importFile(FILE* fp);
293 virtual BOOL exportFile(FILE* fp, BOOL include_asset_key = TRUE) const; 295 virtual BOOL exportFile(FILE* fp, BOOL include_asset_key = TRUE) const;
diff --git a/linden/indra/llinventory/llinventory_vc8.vcproj b/linden/indra/llinventory/llinventory_vc8.vcproj
index 306e6a5..34dadc9 100644
--- a/linden/indra/llinventory/llinventory_vc8.vcproj
+++ b/linden/indra/llinventory/llinventory_vc8.vcproj
@@ -1,347 +1,347 @@
1<?xml version="1.0" encoding="Windows-1252"?> 1<?xml version="1.0" encoding="Windows-1252"?>
2<VisualStudioProject 2<VisualStudioProject
3 ProjectType="Visual C++" 3 ProjectType="Visual C++"
4 Version="8.00" 4 Version="8.00"
5 Name="llinventory" 5 Name="llinventory"
6 ProjectGUID="{328D1968-924F-4863-AAE8-5F9A95BA68E5}" 6 ProjectGUID="{328D1968-924F-4863-AAE8-5F9A95BA68E5}"
7 RootNamespace="llinventory" 7 RootNamespace="llinventory"
8 Keyword="Win32Proj" 8 Keyword="Win32Proj"
9 > 9 >
10 <Platforms> 10 <Platforms>
11 <Platform 11 <Platform
12 Name="Win32" 12 Name="Win32"
13 /> 13 />
14 </Platforms> 14 </Platforms>
15 <ToolFiles> 15 <ToolFiles>
16 </ToolFiles> 16 </ToolFiles>
17 <Configurations> 17 <Configurations>
18 <Configuration 18 <Configuration
19 Name="Debug|Win32" 19 Name="Debug|Win32"
20 OutputDirectory="../lib_$(ConfigurationName)/i686-win32" 20 OutputDirectory="../lib_$(ConfigurationName)/i686-win32"
21 IntermediateDirectory="Debug" 21 IntermediateDirectory="Debug"
22 ConfigurationType="4" 22 ConfigurationType="4"
23 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 23 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
24 CharacterSet="1" 24 CharacterSet="1"
25 > 25 >
26 <Tool 26 <Tool
27 Name="VCPreBuildEventTool" 27 Name="VCPreBuildEventTool"
28 /> 28 />
29 <Tool 29 <Tool
30 Name="VCCustomBuildTool" 30 Name="VCCustomBuildTool"
31 /> 31 />
32 <Tool 32 <Tool
33 Name="VCXMLDataGeneratorTool" 33 Name="VCXMLDataGeneratorTool"
34 /> 34 />
35 <Tool 35 <Tool
36 Name="VCWebServiceProxyGeneratorTool" 36 Name="VCWebServiceProxyGeneratorTool"
37 /> 37 />
38 <Tool 38 <Tool
39 Name="VCMIDLTool" 39 Name="VCMIDLTool"
40 /> 40 />
41 <Tool 41 <Tool
42 Name="VCCLCompilerTool" 42 Name="VCCLCompilerTool"
43 Optimization="0" 43 Optimization="0"
44 AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llmessage;..\llxml;..\..\libraries\i686-win32\include;..\..\libraries\include" 44 AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llmessage;..\llxml;..\..\libraries\i686-win32\include;..\..\libraries\include"
45 PreprocessorDefinitions="WIN32;_DEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG" 45 PreprocessorDefinitions="WIN32;_DEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG"
46 MinimalRebuild="true" 46 MinimalRebuild="true"
47 BasicRuntimeChecks="3" 47 BasicRuntimeChecks="3"
48 RuntimeLibrary="1" 48 RuntimeLibrary="1"
49 StructMemberAlignment="4" 49 StructMemberAlignment="4"
50 TreatWChar_tAsBuiltInType="false" 50 TreatWChar_tAsBuiltInType="false"
51 ForceConformanceInForLoopScope="true" 51 ForceConformanceInForLoopScope="true"
52 UsePrecompiledHeader="0" 52 UsePrecompiledHeader="0"
53 WarningLevel="3" 53 WarningLevel="3"
54 WarnAsError="true" 54 WarnAsError="true"
55 Detect64BitPortabilityProblems="false" 55 Detect64BitPortabilityProblems="false"
56 DebugInformationFormat="4" 56 DebugInformationFormat="4"
57 /> 57 />
58 <Tool 58 <Tool
59 Name="VCManagedResourceCompilerTool" 59 Name="VCManagedResourceCompilerTool"
60 /> 60 />
61 <Tool 61 <Tool
62 Name="VCResourceCompilerTool" 62 Name="VCResourceCompilerTool"
63 /> 63 />
64 <Tool 64 <Tool
65 Name="VCPreLinkEventTool" 65 Name="VCPreLinkEventTool"
66 /> 66 />
67 <Tool 67 <Tool
68 Name="VCLibrarianTool" 68 Name="VCLibrarianTool"
69 OutputFile="$(OutDir)/llinventory.lib" 69 OutputFile="$(OutDir)/llinventory.lib"
70 /> 70 />
71 <Tool 71 <Tool
72 Name="VCALinkTool" 72 Name="VCALinkTool"
73 /> 73 />
74 <Tool 74 <Tool
75 Name="VCXDCMakeTool" 75 Name="VCXDCMakeTool"
76 /> 76 />
77 <Tool 77 <Tool
78 Name="VCBscMakeTool" 78 Name="VCBscMakeTool"
79 /> 79 />
80 <Tool 80 <Tool
81 Name="VCFxCopTool" 81 Name="VCFxCopTool"
82 /> 82 />
83 <Tool 83 <Tool
84 Name="VCPostBuildEventTool" 84 Name="VCPostBuildEventTool"
85 /> 85 />
86 </Configuration> 86 </Configuration>
87 <Configuration 87 <Configuration
88 Name="Release|Win32" 88 Name="Release|Win32"
89 OutputDirectory="../lib_$(ConfigurationName)/i686-win32" 89 OutputDirectory="../lib_$(ConfigurationName)/i686-win32"
90 IntermediateDirectory="Release" 90 IntermediateDirectory="Release"
91 ConfigurationType="4" 91 ConfigurationType="4"
92 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 92 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
93 CharacterSet="1" 93 CharacterSet="1"
94 > 94 >
95 <Tool 95 <Tool
96 Name="VCPreBuildEventTool" 96 Name="VCPreBuildEventTool"
97 /> 97 />
98 <Tool 98 <Tool
99 Name="VCCustomBuildTool" 99 Name="VCCustomBuildTool"
100 /> 100 />
101 <Tool 101 <Tool
102 Name="VCXMLDataGeneratorTool" 102 Name="VCXMLDataGeneratorTool"
103 /> 103 />
104 <Tool 104 <Tool
105 Name="VCWebServiceProxyGeneratorTool" 105 Name="VCWebServiceProxyGeneratorTool"
106 /> 106 />
107 <Tool 107 <Tool
108 Name="VCMIDLTool" 108 Name="VCMIDLTool"
109 /> 109 />
110 <Tool 110 <Tool
111 Name="VCCLCompilerTool" 111 Name="VCCLCompilerTool"
112 AdditionalOptions="/Oy-" 112 AdditionalOptions="/Oy-"
113 AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llmessage;..\llxml;..\..\libraries\i686-win32\include;..\..\libraries\include" 113 AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llmessage;..\llxml;..\..\libraries\i686-win32\include;..\..\libraries\include"
114 PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE" 114 PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE"
115 RuntimeLibrary="0" 115 RuntimeLibrary="0"
116 StructMemberAlignment="0" 116 StructMemberAlignment="0"
117 TreatWChar_tAsBuiltInType="false" 117 TreatWChar_tAsBuiltInType="false"
118 ForceConformanceInForLoopScope="true" 118 ForceConformanceInForLoopScope="true"
119 UsePrecompiledHeader="0" 119 UsePrecompiledHeader="0"
120 WarningLevel="3" 120 WarningLevel="3"
121 WarnAsError="true" 121 WarnAsError="true"
122 Detect64BitPortabilityProblems="false" 122 Detect64BitPortabilityProblems="false"
123 DebugInformationFormat="3" 123 DebugInformationFormat="3"
124 /> 124 />
125 <Tool 125 <Tool
126 Name="VCManagedResourceCompilerTool" 126 Name="VCManagedResourceCompilerTool"
127 /> 127 />
128 <Tool 128 <Tool
129 Name="VCResourceCompilerTool" 129 Name="VCResourceCompilerTool"
130 /> 130 />
131 <Tool 131 <Tool
132 Name="VCPreLinkEventTool" 132 Name="VCPreLinkEventTool"
133 /> 133 />
134 <Tool 134 <Tool
135 Name="VCLibrarianTool" 135 Name="VCLibrarianTool"
136 OutputFile="$(OutDir)/llinventory.lib" 136 OutputFile="$(OutDir)/llinventory.lib"
137 /> 137 />
138 <Tool 138 <Tool
139 Name="VCALinkTool" 139 Name="VCALinkTool"
140 /> 140 />
141 <Tool 141 <Tool
142 Name="VCXDCMakeTool" 142 Name="VCXDCMakeTool"
143 /> 143 />
144 <Tool 144 <Tool
145 Name="VCBscMakeTool" 145 Name="VCBscMakeTool"
146 /> 146 />
147 <Tool 147 <Tool
148 Name="VCFxCopTool" 148 Name="VCFxCopTool"
149 /> 149 />
150 <Tool 150 <Tool
151 Name="VCPostBuildEventTool" 151 Name="VCPostBuildEventTool"
152 /> 152 />
153 </Configuration> 153 </Configuration>
154 <Configuration 154 <Configuration
155 Name="ReleaseNoOpt|Win32" 155 Name="ReleaseNoOpt|Win32"
156 OutputDirectory="../lib_$(ConfigurationName)/i686-win32" 156 OutputDirectory="../lib_$(ConfigurationName)/i686-win32"
157 IntermediateDirectory="$(ConfigurationName)" 157 IntermediateDirectory="$(ConfigurationName)"
158 ConfigurationType="4" 158 ConfigurationType="4"
159 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 159 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
160 CharacterSet="1" 160 CharacterSet="1"
161 > 161 >
162 <Tool 162 <Tool
163 Name="VCPreBuildEventTool" 163 Name="VCPreBuildEventTool"
164 /> 164 />
165 <Tool 165 <Tool
166 Name="VCCustomBuildTool" 166 Name="VCCustomBuildTool"
167 /> 167 />
168 <Tool 168 <Tool
169 Name="VCXMLDataGeneratorTool" 169 Name="VCXMLDataGeneratorTool"
170 /> 170 />
171 <Tool 171 <Tool
172 Name="VCWebServiceProxyGeneratorTool" 172 Name="VCWebServiceProxyGeneratorTool"
173 /> 173 />
174 <Tool 174 <Tool
175 Name="VCMIDLTool" 175 Name="VCMIDLTool"
176 /> 176 />
177 <Tool 177 <Tool
178 Name="VCCLCompilerTool" 178 Name="VCCLCompilerTool"
179 AdditionalOptions="/Oy-" 179 AdditionalOptions="/Oy-"
180 Optimization="0" 180 Optimization="0"
181 AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llmessage;..\llxml;..\..\libraries\i686-win32\include;..\..\libraries\include" 181 AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llmessage;..\llxml;..\..\libraries\i686-win32\include;..\..\libraries\include"
182 PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE" 182 PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE"
183 RuntimeLibrary="0" 183 RuntimeLibrary="0"
184 StructMemberAlignment="0" 184 StructMemberAlignment="0"
185 TreatWChar_tAsBuiltInType="false" 185 TreatWChar_tAsBuiltInType="false"
186 ForceConformanceInForLoopScope="true" 186 ForceConformanceInForLoopScope="true"
187 UsePrecompiledHeader="0" 187 UsePrecompiledHeader="0"
188 WarningLevel="3" 188 WarningLevel="3"
189 WarnAsError="true" 189 WarnAsError="true"
190 Detect64BitPortabilityProblems="false" 190 Detect64BitPortabilityProblems="false"
191 DebugInformationFormat="3" 191 DebugInformationFormat="3"
192 /> 192 />
193 <Tool 193 <Tool
194 Name="VCManagedResourceCompilerTool" 194 Name="VCManagedResourceCompilerTool"
195 /> 195 />
196 <Tool 196 <Tool
197 Name="VCResourceCompilerTool" 197 Name="VCResourceCompilerTool"
198 /> 198 />
199 <Tool 199 <Tool
200 Name="VCPreLinkEventTool" 200 Name="VCPreLinkEventTool"
201 /> 201 />
202 <Tool 202 <Tool
203 Name="VCLibrarianTool" 203 Name="VCLibrarianTool"
204 OutputFile="$(OutDir)/llinventory.lib" 204 OutputFile="$(OutDir)/llinventory.lib"
205 /> 205 />
206 <Tool 206 <Tool
207 Name="VCALinkTool" 207 Name="VCALinkTool"
208 /> 208 />
209 <Tool 209 <Tool
210 Name="VCXDCMakeTool" 210 Name="VCXDCMakeTool"
211 /> 211 />
212 <Tool 212 <Tool
213 Name="VCBscMakeTool" 213 Name="VCBscMakeTool"
214 /> 214 />
215 <Tool 215 <Tool
216 Name="VCFxCopTool" 216 Name="VCFxCopTool"
217 /> 217 />
218 <Tool 218 <Tool
219 Name="VCPostBuildEventTool" 219 Name="VCPostBuildEventTool"
220 /> 220 />
221 </Configuration> 221 </Configuration>
222 </Configurations> 222 </Configurations>
223 <References> 223 <References>
224 </References> 224 </References>
225 <Files> 225 <Files>
226 <Filter 226 <Filter
227 Name="Source Files" 227 Name="Source Files"
228 Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" 228 Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
229 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" 229 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
230 > 230 >
231 <File 231 <File
232 RelativePath=".\llcategory.cpp" 232 RelativePath=".\llcategory.cpp"
233 > 233 >
234 </File> 234 </File>
235 <File 235 <File
236 RelativePath=".\lleconomy.cpp" 236 RelativePath=".\lleconomy.cpp"
237 > 237 >
238 </File> 238 </File>
239 <File 239 <File
240 RelativePath=".\llinventory.cpp" 240 RelativePath=".\llinventory.cpp"
241 > 241 >
242 </File> 242 </File>
243 <File 243 <File
244 RelativePath=".\llinventorytype.cpp" 244 RelativePath=".\llinventorytype.cpp"
245 > 245 >
246 </File> 246 </File>
247 <File 247 <File
248 RelativePath=".\lllandmark.cpp" 248 RelativePath=".\lllandmark.cpp"
249 > 249 >
250 </File> 250 </File>
251 <File 251 <File
252 RelativePath=".\llnotecard.cpp" 252 RelativePath=".\llnotecard.cpp"
253 > 253 >
254 </File> 254 </File>
255 <File 255 <File
256 RelativePath=".\llparcel.cpp" 256 RelativePath=".\llparcel.cpp"
257 > 257 >
258 </File> 258 </File>
259 <File 259 <File
260 RelativePath=".\llpermissions.cpp" 260 RelativePath=".\llpermissions.cpp"
261 > 261 >
262 </File> 262 </File>
263 <File 263 <File
264 RelativePath=".\llsaleinfo.cpp" 264 RelativePath=".\llsaleinfo.cpp"
265 > 265 >
266 </File> 266 </File>
267 <File 267 <File
268 RelativePath=".\lltransactionflags.cpp" 268 RelativePath=".\lltransactionflags.cpp"
269 > 269 >
270 </File> 270 </File>
271 <File 271 <File
272 RelativePath=".\lluserrelations.cpp" 272 RelativePath=".\lluserrelations.cpp"
273 > 273 >
274 </File> 274 </File>
275 </Filter> 275 </Filter>
276 <Filter 276 <Filter
277 Name="Header Files" 277 Name="Header Files"
278 Filter="h;hpp;hxx;hm;inl;inc;xsd" 278 Filter="h;hpp;hxx;hm;inl;inc;xsd"
279 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" 279 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
280 > 280 >
281 <File 281 <File
282 RelativePath=".\llcategory.h" 282 RelativePath=".\llcategory.h"
283 > 283 >
284 </File> 284 </File>
285 <File 285 <File
286 RelativePath=".\lleconomy.h" 286 RelativePath=".\lleconomy.h"
287 > 287 >
288 </File> 288 </File>
289 <File 289 <File
290 RelativePath=".\llinventory.h" 290 RelativePath=".\llinventory.h"
291 > 291 >
292 </File> 292 </File>
293 <File 293 <File
294 RelativePath=".\llinventorytype.h" 294 RelativePath=".\llinventorytype.h"
295 > 295 >
296 </File> 296 </File>
297 <File 297 <File
298 RelativePath=".\lllandmark.h" 298 RelativePath=".\lllandmark.h"
299 > 299 >
300 </File> 300 </File>
301 <File 301 <File
302 RelativePath=".\llnotecard.h" 302 RelativePath=".\llnotecard.h"
303 > 303 >
304 </File> 304 </File>
305 <File 305 <File
306 RelativePath=".\llparcel.h" 306 RelativePath=".\llparcel.h"
307 > 307 >
308 </File> 308 </File>
309 <File 309 <File
310 RelativePath=".\llparcelflags.h" 310 RelativePath=".\llparcelflags.h"
311 > 311 >
312 </File> 312 </File>
313 <File 313 <File
314 RelativePath=".\llpermissions.h" 314 RelativePath=".\llpermissions.h"
315 > 315 >
316 </File> 316 </File>
317 <File 317 <File
318 RelativePath=".\llpermissionsflags.h" 318 RelativePath=".\llpermissionsflags.h"
319 > 319 >
320 </File> 320 </File>
321 <File 321 <File
322 RelativePath=".\llsaleinfo.h" 322 RelativePath=".\llsaleinfo.h"
323 > 323 >
324 </File> 324 </File>
325 <File 325 <File
326 RelativePath=".\lltransactionflags.h" 326 RelativePath=".\lltransactionflags.h"
327 > 327 >
328 </File> 328 </File>
329 <File 329 <File
330 RelativePath=".\lltransactiontypes.h" 330 RelativePath=".\lltransactiontypes.h"
331 > 331 >
332 </File> 332 </File>
333 <File 333 <File
334 RelativePath=".\lluserrelations.h" 334 RelativePath=".\lluserrelations.h"
335 > 335 >
336 </File> 336 </File>
337 </Filter> 337 </Filter>
338 <Filter 338 <Filter
339 Name="Resource Files" 339 Name="Resource Files"
340 Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" 340 Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
341 UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" 341 UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
342 > 342 >
343 </Filter> 343 </Filter>
344 </Files> 344 </Files>
345 <Globals> 345 <Globals>
346 </Globals> 346 </Globals>
347</VisualStudioProject> 347</VisualStudioProject>
diff --git a/linden/indra/llinventory/llinventory_vc9.vcproj b/linden/indra/llinventory/llinventory_vc9.vcproj
index c48b962..cdc6c43 100644
--- a/linden/indra/llinventory/llinventory_vc9.vcproj
+++ b/linden/indra/llinventory/llinventory_vc9.vcproj
@@ -1,348 +1,348 @@
1<?xml version="1.0" encoding="Windows-1252"?> 1<?xml version="1.0" encoding="Windows-1252"?>
2<VisualStudioProject 2<VisualStudioProject
3 ProjectType="Visual C++" 3 ProjectType="Visual C++"
4 Version="9.00" 4 Version="9.00"
5 Name="llinventory" 5 Name="llinventory"
6 ProjectGUID="{328D1968-924F-4863-AAE8-5F9A95BA68E5}" 6 ProjectGUID="{328D1968-924F-4863-AAE8-5F9A95BA68E5}"
7 RootNamespace="llinventory" 7 RootNamespace="llinventory"
8 Keyword="Win32Proj" 8 Keyword="Win32Proj"
9 TargetFrameworkVersion="131072" 9 TargetFrameworkVersion="131072"
10 > 10 >
11 <Platforms> 11 <Platforms>
12 <Platform 12 <Platform
13 Name="Win32" 13 Name="Win32"
14 /> 14 />
15 </Platforms> 15 </Platforms>
16 <ToolFiles> 16 <ToolFiles>
17 </ToolFiles> 17 </ToolFiles>
18 <Configurations> 18 <Configurations>
19 <Configuration 19 <Configuration
20 Name="Debug|Win32" 20 Name="Debug|Win32"
21 OutputDirectory="../lib_$(ConfigurationName)/i686-win32" 21 OutputDirectory="../lib_$(ConfigurationName)/i686-win32"
22 IntermediateDirectory="Debug" 22 IntermediateDirectory="Debug"
23 ConfigurationType="4" 23 ConfigurationType="4"
24 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 24 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
25 CharacterSet="1" 25 CharacterSet="1"
26 > 26 >
27 <Tool 27 <Tool
28 Name="VCPreBuildEventTool" 28 Name="VCPreBuildEventTool"
29 /> 29 />
30 <Tool 30 <Tool
31 Name="VCCustomBuildTool" 31 Name="VCCustomBuildTool"
32 /> 32 />
33 <Tool 33 <Tool
34 Name="VCXMLDataGeneratorTool" 34 Name="VCXMLDataGeneratorTool"
35 /> 35 />
36 <Tool 36 <Tool
37 Name="VCWebServiceProxyGeneratorTool" 37 Name="VCWebServiceProxyGeneratorTool"
38 /> 38 />
39 <Tool 39 <Tool
40 Name="VCMIDLTool" 40 Name="VCMIDLTool"
41 /> 41 />
42 <Tool 42 <Tool
43 Name="VCCLCompilerTool" 43 Name="VCCLCompilerTool"
44 Optimization="0" 44 Optimization="0"
45 AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llmessage;..\llxml;..\..\libraries\i686-win32\include;..\..\libraries\include" 45 AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llmessage;..\llxml;..\..\libraries\i686-win32\include;..\..\libraries\include"
46 PreprocessorDefinitions="WIN32;_DEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG" 46 PreprocessorDefinitions="WIN32;_DEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG"
47 MinimalRebuild="true" 47 MinimalRebuild="true"
48 BasicRuntimeChecks="3" 48 BasicRuntimeChecks="3"
49 RuntimeLibrary="1" 49 RuntimeLibrary="1"
50 StructMemberAlignment="4" 50 StructMemberAlignment="4"
51 TreatWChar_tAsBuiltInType="false" 51 TreatWChar_tAsBuiltInType="false"
52 ForceConformanceInForLoopScope="true" 52 ForceConformanceInForLoopScope="true"
53 UsePrecompiledHeader="0" 53 UsePrecompiledHeader="0"
54 WarningLevel="3" 54 WarningLevel="3"
55 WarnAsError="true" 55 WarnAsError="true"
56 Detect64BitPortabilityProblems="false" 56 Detect64BitPortabilityProblems="false"
57 DebugInformationFormat="4" 57 DebugInformationFormat="4"
58 /> 58 />
59 <Tool 59 <Tool
60 Name="VCManagedResourceCompilerTool" 60 Name="VCManagedResourceCompilerTool"
61 /> 61 />
62 <Tool 62 <Tool
63 Name="VCResourceCompilerTool" 63 Name="VCResourceCompilerTool"
64 /> 64 />
65 <Tool 65 <Tool
66 Name="VCPreLinkEventTool" 66 Name="VCPreLinkEventTool"
67 /> 67 />
68 <Tool 68 <Tool
69 Name="VCLibrarianTool" 69 Name="VCLibrarianTool"
70 OutputFile="$(OutDir)/llinventory.lib" 70 OutputFile="$(OutDir)/llinventory.lib"
71 /> 71 />
72 <Tool 72 <Tool
73 Name="VCALinkTool" 73 Name="VCALinkTool"
74 /> 74 />
75 <Tool 75 <Tool
76 Name="VCXDCMakeTool" 76 Name="VCXDCMakeTool"
77 /> 77 />
78 <Tool 78 <Tool
79 Name="VCBscMakeTool" 79 Name="VCBscMakeTool"
80 /> 80 />
81 <Tool 81 <Tool
82 Name="VCFxCopTool" 82 Name="VCFxCopTool"
83 /> 83 />
84 <Tool 84 <Tool
85 Name="VCPostBuildEventTool" 85 Name="VCPostBuildEventTool"
86 /> 86 />
87 </Configuration> 87 </Configuration>
88 <Configuration 88 <Configuration
89 Name="Release|Win32" 89 Name="Release|Win32"
90 OutputDirectory="../lib_$(ConfigurationName)/i686-win32" 90 OutputDirectory="../lib_$(ConfigurationName)/i686-win32"
91 IntermediateDirectory="Release" 91 IntermediateDirectory="Release"
92 ConfigurationType="4" 92 ConfigurationType="4"
93 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 93 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
94 CharacterSet="1" 94 CharacterSet="1"
95 > 95 >
96 <Tool 96 <Tool
97 Name="VCPreBuildEventTool" 97 Name="VCPreBuildEventTool"
98 /> 98 />
99 <Tool 99 <Tool
100 Name="VCCustomBuildTool" 100 Name="VCCustomBuildTool"
101 /> 101 />
102 <Tool 102 <Tool
103 Name="VCXMLDataGeneratorTool" 103 Name="VCXMLDataGeneratorTool"
104 /> 104 />
105 <Tool 105 <Tool
106 Name="VCWebServiceProxyGeneratorTool" 106 Name="VCWebServiceProxyGeneratorTool"
107 /> 107 />
108 <Tool 108 <Tool
109 Name="VCMIDLTool" 109 Name="VCMIDLTool"
110 /> 110 />
111 <Tool 111 <Tool
112 Name="VCCLCompilerTool" 112 Name="VCCLCompilerTool"
113 AdditionalOptions="/Oy-" 113 AdditionalOptions="/Oy-"
114 AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llmessage;..\llxml;..\..\libraries\i686-win32\include;..\..\libraries\include" 114 AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llmessage;..\llxml;..\..\libraries\i686-win32\include;..\..\libraries\include"
115 PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE" 115 PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE"
116 RuntimeLibrary="0" 116 RuntimeLibrary="0"
117 StructMemberAlignment="0" 117 StructMemberAlignment="0"
118 TreatWChar_tAsBuiltInType="false" 118 TreatWChar_tAsBuiltInType="false"
119 ForceConformanceInForLoopScope="true" 119 ForceConformanceInForLoopScope="true"
120 UsePrecompiledHeader="0" 120 UsePrecompiledHeader="0"
121 WarningLevel="3" 121 WarningLevel="3"
122 WarnAsError="true" 122 WarnAsError="true"
123 Detect64BitPortabilityProblems="false" 123 Detect64BitPortabilityProblems="false"
124 DebugInformationFormat="3" 124 DebugInformationFormat="3"
125 /> 125 />
126 <Tool 126 <Tool
127 Name="VCManagedResourceCompilerTool" 127 Name="VCManagedResourceCompilerTool"
128 /> 128 />
129 <Tool 129 <Tool
130 Name="VCResourceCompilerTool" 130 Name="VCResourceCompilerTool"
131 /> 131 />
132 <Tool 132 <Tool
133 Name="VCPreLinkEventTool" 133 Name="VCPreLinkEventTool"
134 /> 134 />
135 <Tool 135 <Tool
136 Name="VCLibrarianTool" 136 Name="VCLibrarianTool"
137 OutputFile="$(OutDir)/llinventory.lib" 137 OutputFile="$(OutDir)/llinventory.lib"
138 /> 138 />
139 <Tool 139 <Tool
140 Name="VCALinkTool" 140 Name="VCALinkTool"
141 /> 141 />
142 <Tool 142 <Tool
143 Name="VCXDCMakeTool" 143 Name="VCXDCMakeTool"
144 /> 144 />
145 <Tool 145 <Tool
146 Name="VCBscMakeTool" 146 Name="VCBscMakeTool"
147 /> 147 />
148 <Tool 148 <Tool
149 Name="VCFxCopTool" 149 Name="VCFxCopTool"
150 /> 150 />
151 <Tool 151 <Tool
152 Name="VCPostBuildEventTool" 152 Name="VCPostBuildEventTool"
153 /> 153 />
154 </Configuration> 154 </Configuration>
155 <Configuration 155 <Configuration
156 Name="ReleaseNoOpt|Win32" 156 Name="ReleaseNoOpt|Win32"
157 OutputDirectory="../lib_$(ConfigurationName)/i686-win32" 157 OutputDirectory="../lib_$(ConfigurationName)/i686-win32"
158 IntermediateDirectory="$(ConfigurationName)" 158 IntermediateDirectory="$(ConfigurationName)"
159 ConfigurationType="4" 159 ConfigurationType="4"
160 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 160 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
161 CharacterSet="1" 161 CharacterSet="1"
162 > 162 >
163 <Tool 163 <Tool
164 Name="VCPreBuildEventTool" 164 Name="VCPreBuildEventTool"
165 /> 165 />
166 <Tool 166 <Tool
167 Name="VCCustomBuildTool" 167 Name="VCCustomBuildTool"
168 /> 168 />
169 <Tool 169 <Tool
170 Name="VCXMLDataGeneratorTool" 170 Name="VCXMLDataGeneratorTool"
171 /> 171 />
172 <Tool 172 <Tool
173 Name="VCWebServiceProxyGeneratorTool" 173 Name="VCWebServiceProxyGeneratorTool"
174 /> 174 />
175 <Tool 175 <Tool
176 Name="VCMIDLTool" 176 Name="VCMIDLTool"
177 /> 177 />
178 <Tool 178 <Tool
179 Name="VCCLCompilerTool" 179 Name="VCCLCompilerTool"
180 AdditionalOptions="/Oy-" 180 AdditionalOptions="/Oy-"
181 Optimization="0" 181 Optimization="0"
182 AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llmessage;..\llxml;..\..\libraries\i686-win32\include;..\..\libraries\include" 182 AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llmessage;..\llxml;..\..\libraries\i686-win32\include;..\..\libraries\include"
183 PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE" 183 PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE"
184 RuntimeLibrary="0" 184 RuntimeLibrary="0"
185 StructMemberAlignment="0" 185 StructMemberAlignment="0"
186 TreatWChar_tAsBuiltInType="false" 186 TreatWChar_tAsBuiltInType="false"
187 ForceConformanceInForLoopScope="true" 187 ForceConformanceInForLoopScope="true"
188 UsePrecompiledHeader="0" 188 UsePrecompiledHeader="0"
189 WarningLevel="3" 189 WarningLevel="3"
190 WarnAsError="true" 190 WarnAsError="true"
191 Detect64BitPortabilityProblems="false" 191 Detect64BitPortabilityProblems="false"
192 DebugInformationFormat="3" 192 DebugInformationFormat="3"
193 /> 193 />
194 <Tool 194 <Tool
195 Name="VCManagedResourceCompilerTool" 195 Name="VCManagedResourceCompilerTool"
196 /> 196 />
197 <Tool 197 <Tool
198 Name="VCResourceCompilerTool" 198 Name="VCResourceCompilerTool"
199 /> 199 />
200 <Tool 200 <Tool
201 Name="VCPreLinkEventTool" 201 Name="VCPreLinkEventTool"
202 /> 202 />
203 <Tool 203 <Tool
204 Name="VCLibrarianTool" 204 Name="VCLibrarianTool"
205 OutputFile="$(OutDir)/llinventory.lib" 205 OutputFile="$(OutDir)/llinventory.lib"
206 /> 206 />
207 <Tool 207 <Tool
208 Name="VCALinkTool" 208 Name="VCALinkTool"
209 /> 209 />
210 <Tool 210 <Tool
211 Name="VCXDCMakeTool" 211 Name="VCXDCMakeTool"
212 /> 212 />
213 <Tool 213 <Tool
214 Name="VCBscMakeTool" 214 Name="VCBscMakeTool"
215 /> 215 />
216 <Tool 216 <Tool
217 Name="VCFxCopTool" 217 Name="VCFxCopTool"
218 /> 218 />
219 <Tool 219 <Tool
220 Name="VCPostBuildEventTool" 220 Name="VCPostBuildEventTool"
221 /> 221 />
222 </Configuration> 222 </Configuration>
223 </Configurations> 223 </Configurations>
224 <References> 224 <References>
225 </References> 225 </References>
226 <Files> 226 <Files>
227 <Filter 227 <Filter
228 Name="Source Files" 228 Name="Source Files"
229 Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" 229 Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
230 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" 230 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
231 > 231 >
232 <File 232 <File
233 RelativePath=".\llcategory.cpp" 233 RelativePath=".\llcategory.cpp"
234 > 234 >
235 </File> 235 </File>
236 <File 236 <File
237 RelativePath=".\lleconomy.cpp" 237 RelativePath=".\lleconomy.cpp"
238 > 238 >
239 </File> 239 </File>
240 <File 240 <File
241 RelativePath=".\llinventory.cpp" 241 RelativePath=".\llinventory.cpp"
242 > 242 >
243 </File> 243 </File>
244 <File 244 <File
245 RelativePath=".\llinventorytype.cpp" 245 RelativePath=".\llinventorytype.cpp"
246 > 246 >
247 </File> 247 </File>
248 <File 248 <File
249 RelativePath=".\lllandmark.cpp" 249 RelativePath=".\lllandmark.cpp"
250 > 250 >
251 </File> 251 </File>
252 <File 252 <File
253 RelativePath=".\llnotecard.cpp" 253 RelativePath=".\llnotecard.cpp"
254 > 254 >
255 </File> 255 </File>
256 <File 256 <File
257 RelativePath=".\llparcel.cpp" 257 RelativePath=".\llparcel.cpp"
258 > 258 >
259 </File> 259 </File>
260 <File 260 <File
261 RelativePath=".\llpermissions.cpp" 261 RelativePath=".\llpermissions.cpp"
262 > 262 >
263 </File> 263 </File>
264 <File 264 <File
265 RelativePath=".\llsaleinfo.cpp" 265 RelativePath=".\llsaleinfo.cpp"
266 > 266 >
267 </File> 267 </File>
268 <File 268 <File
269 RelativePath=".\lltransactionflags.cpp" 269 RelativePath=".\lltransactionflags.cpp"
270 > 270 >
271 </File> 271 </File>
272 <File 272 <File
273 RelativePath=".\lluserrelations.cpp" 273 RelativePath=".\lluserrelations.cpp"
274 > 274 >
275 </File> 275 </File>
276 </Filter> 276 </Filter>
277 <Filter 277 <Filter
278 Name="Header Files" 278 Name="Header Files"
279 Filter="h;hpp;hxx;hm;inl;inc;xsd" 279 Filter="h;hpp;hxx;hm;inl;inc;xsd"
280 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" 280 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
281 > 281 >
282 <File 282 <File
283 RelativePath=".\llcategory.h" 283 RelativePath=".\llcategory.h"
284 > 284 >
285 </File> 285 </File>
286 <File 286 <File
287 RelativePath=".\lleconomy.h" 287 RelativePath=".\lleconomy.h"
288 > 288 >
289 </File> 289 </File>
290 <File 290 <File
291 RelativePath=".\llinventory.h" 291 RelativePath=".\llinventory.h"
292 > 292 >
293 </File> 293 </File>
294 <File 294 <File
295 RelativePath=".\llinventorytype.h" 295 RelativePath=".\llinventorytype.h"
296 > 296 >
297 </File> 297 </File>
298 <File 298 <File
299 RelativePath=".\lllandmark.h" 299 RelativePath=".\lllandmark.h"
300 > 300 >
301 </File> 301 </File>
302 <File 302 <File
303 RelativePath=".\llnotecard.h" 303 RelativePath=".\llnotecard.h"
304 > 304 >
305 </File> 305 </File>
306 <File 306 <File
307 RelativePath=".\llparcel.h" 307 RelativePath=".\llparcel.h"
308 > 308 >
309 </File> 309 </File>
310 <File 310 <File
311 RelativePath=".\llparcelflags.h" 311 RelativePath=".\llparcelflags.h"
312 > 312 >
313 </File> 313 </File>
314 <File 314 <File
315 RelativePath=".\llpermissions.h" 315 RelativePath=".\llpermissions.h"
316 > 316 >
317 </File> 317 </File>
318 <File 318 <File
319 RelativePath=".\llpermissionsflags.h" 319 RelativePath=".\llpermissionsflags.h"
320 > 320 >
321 </File> 321 </File>
322 <File 322 <File
323 RelativePath=".\llsaleinfo.h" 323 RelativePath=".\llsaleinfo.h"
324 > 324 >
325 </File> 325 </File>
326 <File 326 <File
327 RelativePath=".\lltransactionflags.h" 327 RelativePath=".\lltransactionflags.h"
328 > 328 >
329 </File> 329 </File>
330 <File 330 <File
331 RelativePath=".\lltransactiontypes.h" 331 RelativePath=".\lltransactiontypes.h"
332 > 332 >
333 </File> 333 </File>
334 <File 334 <File
335 RelativePath=".\lluserrelations.h" 335 RelativePath=".\lluserrelations.h"
336 > 336 >
337 </File> 337 </File>
338 </Filter> 338 </Filter>
339 <Filter 339 <Filter
340 Name="Resource Files" 340 Name="Resource Files"
341 Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" 341 Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
342 UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" 342 UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
343 > 343 >
344 </Filter> 344 </Filter>
345 </Files> 345 </Files>
346 <Globals> 346 <Globals>
347 </Globals> 347 </Globals>
348</VisualStudioProject> 348</VisualStudioProject>
diff --git a/linden/indra/llinventory/llparcel.cpp b/linden/indra/llinventory/llparcel.cpp
index f8fb4d5..5f8a000 100644
--- a/linden/indra/llinventory/llparcel.cpp
+++ b/linden/indra/llinventory/llparcel.cpp
@@ -42,6 +42,7 @@
42#include "llsdutil.h" 42#include "llsdutil.h"
43#include "lltransactiontypes.h" 43#include "lltransactiontypes.h"
44#include "lltransactionflags.h" 44#include "lltransactionflags.h"
45#include "llsdutil.h"
45#include "message.h" 46#include "message.h"
46#include "u64.h" 47#include "u64.h"
47 48
@@ -170,73 +171,80 @@ void LLParcel::init(const LLUUID &owner_id,
170 S32 rent_price_per_meter, S32 area, S32 sim_object_limit, F32 parcel_object_bonus, 171 S32 rent_price_per_meter, S32 area, S32 sim_object_limit, F32 parcel_object_bonus,
171 BOOL is_group_owned) 172 BOOL is_group_owned)
172{ 173{
173 mID.setNull(); 174 mID.setNull();
174 mOwnerID = owner_id; 175 mOwnerID = owner_id;
175 mGroupOwned = is_group_owned; 176 mGroupOwned = is_group_owned;
176 mClaimDate = claim_date; 177 mClaimDate = claim_date;
177 mClaimPricePerMeter = claim_price_per_meter; 178 mClaimPricePerMeter = claim_price_per_meter;
178 mRentPricePerMeter = rent_price_per_meter; 179 mRentPricePerMeter = rent_price_per_meter;
179 mArea = area; 180 mArea = area;
180 mDiscountRate = 1.0f; 181 mDiscountRate = 1.0f;
181 mDrawDistance = 512.f; 182 mDrawDistance = 512.f;
182 183
183 mUserLookAt.setVec(0.0f, 0.f, 0.f); 184 mUserLookAt.setVec(0.0f, 0.f, 0.f);
184 // Default to using the parcel's landing point, if any. 185 // Default to using the parcel's landing point, if any.
185 mLandingType = L_LANDING_POINT; 186 mLandingType = L_LANDING_POINT;
186 187
187 // *FIX: if owner_id != null, should be owned or sale pending, 188 // *FIX: if owner_id != null, should be owned or sale pending,
188 // investigate init callers. 189 // investigate init callers.
189 mStatus = OS_NONE; 190 mStatus = OS_NONE;
190 mCategory = C_NONE; 191 mCategory = C_NONE;
191 mAuthBuyerID.setNull(); 192 mAuthBuyerID.setNull();
192 //mBuyerID.setNull(); 193 //mBuyerID.setNull();
193 //mJoinNeighbors = 0x0; 194 //mJoinNeighbors = 0x0;
194 mSaleTimerExpires.setTimerExpirySec(0); 195 mSaleTimerExpires.setTimerExpirySec(0);
195 mSaleTimerExpires.stop(); 196 mSaleTimerExpires.stop();
196 mGraceExtension = 0; 197 mGraceExtension = 0;
197 //mExpireAction = STEA_REVERT; 198 //mExpireAction = STEA_REVERT;
198 mRecordTransaction = FALSE; 199 mRecordTransaction = FALSE;
199 200
200 mAuctionID = 0; 201 mAuctionID = 0;
201 mInEscrow = false; 202 mInEscrow = false;
202 203
203 mParcelFlags = PF_DEFAULT; 204 mParcelFlags = PF_DEFAULT;
204 setParcelFlag(PF_CREATE_OBJECTS, modify); 205 setParcelFlag(PF_CREATE_OBJECTS, modify);
205 setParcelFlag(PF_ALLOW_TERRAFORM, terraform); 206 setParcelFlag(PF_ALLOW_TERRAFORM, terraform);
206 setParcelFlag(PF_ALLOW_DAMAGE, damage); 207 setParcelFlag(PF_ALLOW_DAMAGE, damage);
207 208
208 mSalePrice = 10000; 209 mSalePrice = 10000;
209 setName(NULL); 210 setName(NULL);
210 setDesc(NULL); 211 setDesc(NULL);
211 setMusicURL(NULL); 212 setMusicURL(NULL);
212 setMediaURL(NULL); 213 setMediaURL(NULL);
213 mMediaID.setNull(); 214 setMediaDesc(NULL);
214 mMediaAutoScale = 0; 215 setMediaType(NULL);
215 216 mMediaID.setNull();
216 mGroupID.setNull(); 217 mMediaAutoScale = 0;
217 218 mMediaLoop = TRUE;
218 mPassPrice = PARCEL_PASS_PRICE_DEFAULT; 219 mObscureMedia = 0;
219 mPassHours = PARCEL_PASS_HOURS_DEFAULT; 220 mObscureMusic = 0;
220 221 mMediaWidth = 0;
221 mAABBMin.setVec(SOME_BIG_NUMBER, SOME_BIG_NUMBER, SOME_BIG_NUMBER); 222 mMediaHeight = 0;
222 mAABBMax.setVec(SOME_BIG_NEG_NUMBER, SOME_BIG_NEG_NUMBER, SOME_BIG_NEG_NUMBER); 223
223 224 mGroupID.setNull();
224 mLocalID = 0; 225
225 226 mPassPrice = PARCEL_PASS_PRICE_DEFAULT;
226 //mSimWidePrimCorrection = 0; 227 mPassHours = PARCEL_PASS_HOURS_DEFAULT;
227 setMaxPrimCapacity((S32)(sim_object_limit * area / (F32)(REGION_WIDTH_METERS * REGION_WIDTH_METERS))); 228
228 setSimWideMaxPrimCapacity(0); 229 mAABBMin.setVec(SOME_BIG_NUMBER, SOME_BIG_NUMBER, SOME_BIG_NUMBER);
229 setSimWidePrimCount(0); 230 mAABBMax.setVec(SOME_BIG_NEG_NUMBER, SOME_BIG_NEG_NUMBER, SOME_BIG_NEG_NUMBER);
230 setOwnerPrimCount(0); 231
231 setGroupPrimCount(0); 232 mLocalID = 0;
232 setOtherPrimCount(0); 233
233 setSelectedPrimCount(0); 234 //mSimWidePrimCorrection = 0;
234 setTempPrimCount(0); 235 setMaxPrimCapacity((S32)(sim_object_limit * area / (F32)(REGION_WIDTH_METERS * REGION_WIDTH_METERS)));
235 setCleanOtherTime(0); 236 setSimWideMaxPrimCapacity(0);
236 setParcelPrimBonus(parcel_object_bonus); 237 setSimWidePrimCount(0);
237 238 setOwnerPrimCount(0);
238 setPreviousOwnerID(LLUUID::null); 239 setGroupPrimCount(0);
239 setPreviouslyGroupOwned(FALSE); 240 setOtherPrimCount(0);
241 setSelectedPrimCount(0);
242 setTempPrimCount(0);
243 setCleanOtherTime(0);
244 setParcelPrimBonus(parcel_object_bonus);
245
246 setPreviousOwnerID(LLUUID::null);
247 setPreviouslyGroupOwned(FALSE);
240} 248}
241 249
242void LLParcel::overrideOwner(const LLUUID& owner_id, BOOL is_group_owned) 250void LLParcel::overrideOwner(const LLUUID& owner_id, BOOL is_group_owned)
@@ -260,7 +268,21 @@ void LLParcel::overrideParcelFlags(U32 flags)
260{ 268{
261 mParcelFlags = flags; 269 mParcelFlags = flags;
262} 270}
263 271void set_std_string(const char* src, std::string& dest)
272{
273 if(src)
274 {
275 dest.assign(src);
276 }
277 else
278 {
279#if (LL_LINUX && __GNUC__ < 3)
280 dest.assign(std::string(""));
281#else
282 dest.clear();
283#endif
284 }
285}
264void LLParcel::setName(const LLString& name) 286void LLParcel::setName(const LLString& name)
265{ 287{
266 // The escaping here must match the escaping in the database 288 // The escaping here must match the escaping in the database
@@ -297,6 +319,34 @@ void LLParcel::setMediaURL(const LLString& url)
297 LLStringFn::replace_nonprintable(mMediaURL, LL_UNKNOWN_CHAR); 319 LLStringFn::replace_nonprintable(mMediaURL, LL_UNKNOWN_CHAR);
298} 320}
299 321
322void LLParcel::setMediaDesc(const char* desc)
323{
324 // The escaping here must match the escaping in the database
325 // abstraction layer.
326 set_std_string(desc, mMediaDesc);
327 mMediaDesc = rawstr_to_utf8(mMediaDesc);
328}
329void LLParcel::setMediaType(const char* type)
330{
331 // The escaping here must match the escaping in the database
332 // abstraction layer.
333 set_std_string(type, mMediaType);
334 mMediaType = rawstr_to_utf8(mMediaType);
335
336 // This code attempts to preserve legacy movie functioning
337 if(mMediaType.empty() && ! mMediaURL.empty())
338 {
339 setMediaType("video/vnd.secondlife.qt.legacy");
340 }
341}
342void LLParcel::setMediaWidth(S32 width)
343{
344 mMediaWidth = width;
345}
346void LLParcel::setMediaHeight(S32 height)
347{
348 mMediaHeight = height;
349}
300// virtual 350// virtual
301void LLParcel::setLocalID(S32 local_id) 351void LLParcel::setLocalID(S32 local_id)
302{ 352{
@@ -512,338 +562,367 @@ void LLParcel::setDiscountRate(F32 rate)
512// WARNING: Area will be wrong until you calculate it. 562// WARNING: Area will be wrong until you calculate it.
513BOOL LLParcel::importStream(std::istream& input_stream) 563BOOL LLParcel::importStream(std::istream& input_stream)
514{ 564{
515 U32 setting; 565 U32 setting;
516 S32 secs_until_revert = 0; 566 S32 secs_until_revert = 0;
517 567
518 skip_to_end_of_next_keyword("{", input_stream); 568 skip_to_end_of_next_keyword("{", input_stream);
519 if (!input_stream.good()) 569 if (!input_stream.good())
520 { 570 {
521 llwarns << "LLParcel::importStream() - bad input_stream" << llendl; 571 llwarns << "LLParcel::importStream() - bad input_stream" << llendl;
522 return FALSE; 572 return FALSE;
523 } 573 }
524 574
525 while (input_stream.good()) 575 while (input_stream.good())
526 { 576 {
527 skip_comments_and_emptyspace(input_stream); 577 skip_comments_and_emptyspace(input_stream);
528 LLString line, keyword, value; 578 LLString line, keyword, value;
529 get_line(line, input_stream, MAX_STRING); 579 get_line(line, input_stream, MAX_STRING);
530 get_keyword_and_value(keyword, value, line); 580 get_keyword_and_value(keyword, value, line);
531 581
532 if ("}" == keyword) 582 if ("}" == keyword)
533 { 583 {
534 break; 584 break;
535 } 585 }
536 else if ("parcel_id" == keyword) 586 else if ("parcel_id" == keyword)
537 { 587 {
538 mID.set(value.c_str()); 588 mID.set(value.c_str());
539 } 589 }
540 else if ("status" == keyword) 590 else if ("status" == keyword)
541 { 591 {
542 mStatus = ownership_string_to_status(value.c_str()); 592 mStatus = ownership_string_to_status(value.c_str());
543 } 593 }
544 else if ("category" == keyword) 594 else if ("category" == keyword)
545 { 595 {
546 mCategory = category_string_to_category(value.c_str()); 596 mCategory = category_string_to_category(value.c_str());
547 } 597 }
548 else if ("local_id" == keyword) 598 else if ("local_id" == keyword)
549 { 599 {
550 LLString::convertToS32(value, mLocalID); 600 LLString::convertToS32(value, mLocalID);
551 } 601 }
552 else if ("name" == keyword) 602 else if ("name" == keyword)
553 { 603 {
554 setName( value ); 604 setName( value );
555 } 605 }
556 else if ("desc" == keyword) 606 else if ("desc" == keyword)
557 { 607 {
558 setDesc( value ); 608 setDesc( value );
559 } 609 }
560 else if ("music_url" == keyword) 610 else if ("music_url" == keyword)
561 { 611 {
562 setMusicURL( value ); 612 setMusicURL( value );
563 } 613 }
564 else if ("media_url" == keyword) 614 else if ("media_url" == keyword)
565 { 615 {
566 setMediaURL( value ); 616 setMediaURL( value );
567 } 617 }
568 else if ("media_id" == keyword) 618 else if ("media_desc" == keyword)
569 { 619 {
570 mMediaID.set( value.c_str() ); 620 setMediaDesc( value.c_str() );
571 } 621 }
572 else if ("media_auto_scale" == keyword) 622 else if ("media_type" == keyword)
573 { 623 {
574 LLString::convertToU8(value, mMediaAutoScale); 624 setMediaType( value.c_str() );
575 } 625 }
576 else if ("owner_id" == keyword) 626 else if ("media_width" == keyword)
577 { 627 {
578 mOwnerID.set( value.c_str() ); 628 S32 width;
579 } 629 LLString::convertToS32(value, width);
580 else if ("group_owned" == keyword) 630 setMediaWidth( width );
581 { 631 }
582 LLString::convertToBOOL(value, mGroupOwned); 632 else if ("media_height" == keyword)
583 } 633 {
584 else if ("clean_other_time" == keyword) 634 S32 height;
585 { 635 LLString::convertToS32(value, height);
586 S32 time; 636 setMediaHeight( height );
587 LLString::convertToS32(value, time); 637 }
588 setCleanOtherTime(time); 638 else if ("media_id" == keyword)
589 } 639 {
590 else if ("auth_buyer_id" == keyword) 640 mMediaID.set( value.c_str() );
591 { 641 }
592 mAuthBuyerID.set(value.c_str()); 642 else if ("media_auto_scale" == keyword)
593 } 643 {
594 else if ("snapshot_id" == keyword) 644 LLString::convertToU8(value, mMediaAutoScale);
595 { 645 }
596 mSnapshotID.set(value.c_str()); 646 else if ("media_loop" == keyword)
597 } 647 {
598 else if ("user_location" == keyword) 648 LLString::convertToU8(value, mMediaLoop);
599 { 649 }
600 sscanf(value.c_str(), "%f %f %f", 650 else if ("obscure_media" == keyword)
601 &mUserLocation.mV[VX], 651 {
602 &mUserLocation.mV[VY], 652 LLString::convertToU8(value, mObscureMedia);
603 &mUserLocation.mV[VZ]); 653 }
604 } 654 else if ("obscure_music" == keyword)
605 else if ("user_look_at" == keyword) 655 {
606 { 656 LLString::convertToU8(value, mObscureMusic);
607 sscanf(value.c_str(), "%f %f %f", 657 }
608 &mUserLookAt.mV[VX], 658 else if ("owner_id" == keyword)
609 &mUserLookAt.mV[VY], 659 {
610 &mUserLookAt.mV[VZ]); 660 mOwnerID.set( value.c_str() );
611 } 661 }
612 else if ("landing_type" == keyword) 662 else if ("group_owned" == keyword)
613 { 663 {
614 S32 landing_type = 0; 664 LLString::convertToBOOL(value, mGroupOwned);
615 LLString::convertToS32(value, landing_type); 665 }
616 mLandingType = (ELandingType) landing_type; 666 else if ("clean_other_time" == keyword)
617 } 667 {
618 else if ("join_neighbors" == keyword) 668 S32 time;
619 { 669 LLString::convertToS32(value, time);
620 llinfos << "found deprecated keyword join_neighbors" << llendl; 670 setCleanOtherTime(time);
621 } 671 }
622 else if ("revert_sale" == keyword) 672 else if ("auth_buyer_id" == keyword)
623 { 673 {
624 LLString::convertToS32(value, secs_until_revert); 674 mAuthBuyerID.set(value.c_str());
625 if (secs_until_revert > 0) 675 }
626 { 676 else if ("snapshot_id" == keyword)
627 mSaleTimerExpires.start(); 677 {
628 mSaleTimerExpires.setTimerExpirySec((F32)secs_until_revert); 678 mSnapshotID.set(value.c_str());
629 } 679 }
630 } 680 else if ("user_location" == keyword)
631 else if("extended_grace" == keyword) 681 {
632 { 682 sscanf(value.c_str(), "%f %f %f",
633 LLString::convertToS32(value, mGraceExtension); 683 &mUserLocation.mV[VX],
634 } 684 &mUserLocation.mV[VY],
635 else if ("user_list_type" == keyword) 685 &mUserLocation.mV[VZ]);
636 { 686 }
637 // deprecated 687 else if ("user_look_at" == keyword)
638 } 688 {
639 else if("auction_id" == keyword) 689 sscanf(value.c_str(), "%f %f %f",
640 { 690 &mUserLookAt.mV[VX],
641 LLString::convertToU32(value, mAuctionID); 691 &mUserLookAt.mV[VY],
642 } 692 &mUserLookAt.mV[VZ]);
643 else if ("allow_modify" == keyword) 693 }
644 { 694 else if ("landing_type" == keyword)
645 LLString::convertToU32(value, setting); 695 {
646 setParcelFlag(PF_CREATE_OBJECTS, setting); 696 S32 landing_type = 0;
647 } 697 LLString::convertToS32(value, landing_type);
648 else if ("allow_group_modify" == keyword) 698 mLandingType = (ELandingType) landing_type;
649 { 699 }
650 LLString::convertToU32(value, setting); 700 else if ("join_neighbors" == keyword)
651 setParcelFlag(PF_CREATE_GROUP_OBJECTS, setting); 701 {
652 } 702 llinfos << "found deprecated keyword join_neighbors" << llendl;
653 else if ("allow_all_object_entry" == keyword) 703 }
654 { 704 else if ("revert_sale" == keyword)
655 LLString::convertToU32(value, setting); 705 {
656 setParcelFlag(PF_ALLOW_ALL_OBJECT_ENTRY, setting); 706 LLString::convertToS32(value, secs_until_revert);
657 } 707 if (secs_until_revert > 0)
658 else if ("allow_group_object_entry" == keyword) 708 {
659 { 709 mSaleTimerExpires.start();
660 LLString::convertToU32(value, setting); 710 mSaleTimerExpires.setTimerExpirySec((F32)secs_until_revert);
661 setParcelFlag(PF_ALLOW_GROUP_OBJECT_ENTRY, setting); 711 }
662 } 712 }
663 else if ("allow_deed_to_group" == keyword) 713 else if("extended_grace" == keyword)
664 { 714 {
665 LLString::convertToU32(value, setting); 715 LLString::convertToS32(value, mGraceExtension);
666 setParcelFlag(PF_ALLOW_DEED_TO_GROUP, setting); 716 }
667 } 717 else if ("user_list_type" == keyword)
668 else if("contribute_with_deed" == keyword) 718 {
669 { 719 // deprecated
670 LLString::convertToU32(value, setting); 720 }
671 setParcelFlag(PF_CONTRIBUTE_WITH_DEED, setting); 721 else if("auction_id" == keyword)
672 } 722 {
673 else if ("allow_terraform" == keyword) 723 LLString::convertToU32(value, mAuctionID);
674 { 724 }
675 LLString::convertToU32(value, setting); 725 else if ("allow_modify" == keyword)
676 setParcelFlag(PF_ALLOW_TERRAFORM, setting); 726 {
677 } 727 LLString::convertToU32(value, setting);
678 else if ("allow_damage" == keyword) 728 setParcelFlag(PF_CREATE_OBJECTS, setting);
679 { 729 }
680 LLString::convertToU32(value, setting); 730 else if ("allow_group_modify" == keyword)
681 setParcelFlag(PF_ALLOW_DAMAGE, setting); 731 {
682 } 732 LLString::convertToU32(value, setting);
683 else if ("allow_fly" == keyword) 733 setParcelFlag(PF_CREATE_GROUP_OBJECTS, setting);
684 { 734 }
685 LLString::convertToU32(value, setting); 735 else if ("allow_all_object_entry" == keyword)
686 setParcelFlag(PF_ALLOW_FLY, setting); 736 {
687 } 737 LLString::convertToU32(value, setting);
688 else if ("allow_landmark" == keyword) 738 setParcelFlag(PF_ALLOW_ALL_OBJECT_ENTRY, setting);
689 { 739 }
690 LLString::convertToU32(value, setting); 740 else if ("allow_group_object_entry" == keyword)
691 setParcelFlag(PF_ALLOW_LANDMARK, setting); 741 {
692 } 742 LLString::convertToU32(value, setting);
693 else if ("sound_local" == keyword) 743 setParcelFlag(PF_ALLOW_GROUP_OBJECT_ENTRY, setting);
694 { 744 }
695 LLString::convertToU32(value, setting); 745 else if ("allow_deed_to_group" == keyword)
696 setParcelFlag(PF_SOUND_LOCAL, setting); 746 {
697 } 747 LLString::convertToU32(value, setting);
698 else if ("allow_group_scripts" == keyword) 748 setParcelFlag(PF_ALLOW_DEED_TO_GROUP, setting);
699 { 749 }
700 LLString::convertToU32(value, setting); 750 else if("contribute_with_deed" == keyword)
701 setParcelFlag(PF_ALLOW_GROUP_SCRIPTS, setting); 751 {
702 } 752 LLString::convertToU32(value, setting);
703 else if ("allow_voice_chat" == keyword) 753 setParcelFlag(PF_CONTRIBUTE_WITH_DEED, setting);
704 { 754 }
705 LLString::convertToU32(value, setting); 755 else if ("allow_terraform" == keyword)
706 setParcelFlag(PF_ALLOW_VOICE_CHAT, setting); 756 {
707 } 757 LLString::convertToU32(value, setting);
708 else if ("use_estate_voice_chan" == keyword) 758 setParcelFlag(PF_ALLOW_TERRAFORM, setting);
709 { 759 }
710 LLString::convertToU32(value, setting); 760 else if ("allow_damage" == keyword)
711 setParcelFlag(PF_USE_ESTATE_VOICE_CHAN, setting); 761 {
712 } 762 LLString::convertToU32(value, setting);
713 else if ("allow_scripts" == keyword) 763 setParcelFlag(PF_ALLOW_DAMAGE, setting);
714 { 764 }
715 LLString::convertToU32(value, setting); 765 else if ("allow_fly" == keyword)
716 setParcelFlag(PF_ALLOW_OTHER_SCRIPTS, setting); 766 {
717 } 767 LLString::convertToU32(value, setting);
718 else if ("for_sale" == keyword) 768 setParcelFlag(PF_ALLOW_FLY, setting);
719 { 769 }
720 LLString::convertToU32(value, setting); 770 else if ("allow_landmark" == keyword)
721 setParcelFlag(PF_FOR_SALE, setting); 771 {
722 } 772 LLString::convertToU32(value, setting);
723 else if ("sell_w_objects" == keyword) 773 setParcelFlag(PF_ALLOW_LANDMARK, setting);
724 { 774 }
725 LLString::convertToU32(value, setting); 775 else if ("sound_local" == keyword)
726 setParcelFlag(PF_SELL_PARCEL_OBJECTS, setting); 776 {
727 } 777 LLString::convertToU32(value, setting);
728 else if ("use_pass_list" == keyword) 778 setParcelFlag(PF_SOUND_LOCAL, setting);
729 { 779 }
730 LLString::convertToU32(value, setting); 780 else if ("allow_group_scripts" == keyword)
731 setParcelFlag(PF_USE_PASS_LIST, setting); 781 {
732 } 782 LLString::convertToU32(value, setting);
733 else if ("show_directory" == keyword) 783 setParcelFlag(PF_ALLOW_GROUP_SCRIPTS, setting);
734 { 784 }
735 LLString::convertToU32(value, setting); 785 else if ("allow_voice_chat" == keyword)
736 setParcelFlag(PF_SHOW_DIRECTORY, setting); 786 {
737 } 787 LLString::convertToU32(value, setting);
738 else if ("allow_publish" == keyword) 788 setParcelFlag(PF_ALLOW_VOICE_CHAT, setting);
739 { 789 }
740 LLString::convertToU32(value, setting); 790 else if ("use_estate_voice_chan" == keyword)
741 setParcelFlag(PF_ALLOW_PUBLISH, setting); 791 {
742 } 792 LLString::convertToU32(value, setting);
743 else if ("mature_publish" == keyword) 793 setParcelFlag(PF_USE_ESTATE_VOICE_CHAN, setting);
744 { 794 }
745 LLString::convertToU32(value, setting); 795 else if ("allow_scripts" == keyword)
746 setParcelFlag(PF_MATURE_PUBLISH, setting); 796 {
747 } 797 LLString::convertToU32(value, setting);
748 else if ("claim_date" == keyword) 798 setParcelFlag(PF_ALLOW_OTHER_SCRIPTS, setting);
749 { 799 }
750 // BUG: This will fail when time rolls over in 2038. 800 else if ("for_sale" == keyword)
751 S32 time; 801 {
752 LLString::convertToS32(value, time); 802 LLString::convertToU32(value, setting);
753 mClaimDate = time; 803 setParcelFlag(PF_FOR_SALE, setting);
754 } 804 }
755 else if ("claim_price" == keyword) 805 else if ("sell_w_objects" == keyword)
756 { 806 {
757 LLString::convertToS32(value, mClaimPricePerMeter); 807 LLString::convertToU32(value, setting);
758 } 808 setParcelFlag(PF_SELL_PARCEL_OBJECTS, setting);
759 else if ("rent_price" == keyword) 809 }
760 { 810 else if ("use_pass_list" == keyword)
761 LLString::convertToS32(value, mRentPricePerMeter); 811 {
762 } 812 LLString::convertToU32(value, setting);
763 else if ("discount_rate" == keyword) 813 setParcelFlag(PF_USE_PASS_LIST, setting);
764 { 814 }
765 LLString::convertToF32(value, mDiscountRate); 815 else if ("show_directory" == keyword)
766 } 816 {
767 else if ("draw_distance" == keyword) 817 LLString::convertToU32(value, setting);
768 { 818 setParcelFlag(PF_SHOW_DIRECTORY, setting);
769 LLString::convertToF32(value, mDrawDistance); 819 }
770 } 820 else if ("allow_publish" == keyword)
771 else if ("sale_price" == keyword) 821 {
772 { 822 LLString::convertToU32(value, setting);
773 LLString::convertToS32(value, mSalePrice); 823 setParcelFlag(PF_ALLOW_PUBLISH, setting);
774 } 824 }
775 else if ("pass_price" == keyword) 825 else if ("mature_publish" == keyword)
776 { 826 {
777 LLString::convertToS32(value, mPassPrice); 827 LLString::convertToU32(value, setting);
778 } 828 setParcelFlag(PF_MATURE_PUBLISH, setting);
779 else if ("pass_hours" == keyword) 829 }
780 { 830 else if ("claim_date" == keyword)
781 LLString::convertToF32(value, mPassHours); 831 {
782 } 832 // BUG: This will fail when time rolls over in 2038.
783 else if ("box" == keyword) 833 S32 time;
784 { 834 LLString::convertToS32(value, time);
785 // deprecated 835 mClaimDate = time;
786 } 836 }
787 else if ("aabb_min" == keyword) 837 else if ("claim_price" == keyword)
788 { 838 {
789 sscanf(value.c_str(), "%f %f %f", 839 LLString::convertToS32(value, mClaimPricePerMeter);
790 &mAABBMin.mV[VX], &mAABBMin.mV[VY], &mAABBMin.mV[VZ]); 840 }
791 } 841 else if ("rent_price" == keyword)
792 else if ("use_access_group" == keyword) 842 {
793 { 843 LLString::convertToS32(value, mRentPricePerMeter);
794 LLString::convertToU32(value, setting); 844 }
795 setParcelFlag(PF_USE_ACCESS_GROUP, setting); 845 else if ("discount_rate" == keyword)
796 } 846 {
797 else if ("use_access_list" == keyword) 847 LLString::convertToF32(value, mDiscountRate);
798 { 848 }
799 LLString::convertToU32(value, setting); 849 else if ("draw_distance" == keyword)
800 setParcelFlag(PF_USE_ACCESS_LIST, setting); 850 {
801 } 851 LLString::convertToF32(value, mDrawDistance);
802 else if ("use_ban_list" == keyword) 852 }
803 { 853 else if ("sale_price" == keyword)
804 LLString::convertToU32(value, setting); 854 {
805 setParcelFlag(PF_USE_BAN_LIST, setting); 855 LLString::convertToS32(value, mSalePrice);
806 } 856 }
807 else if ("group_name" == keyword) 857 else if ("pass_price" == keyword)
808 { 858 {
809 llinfos << "found deprecated keyword group_name" << llendl; 859 LLString::convertToS32(value, mPassPrice);
810 } 860 }
811 else if ("group_id" == keyword) 861 else if ("pass_hours" == keyword)
812 { 862 {
813 mGroupID.set( value.c_str() ); 863 LLString::convertToF32(value, mPassHours);
814 } 864 }
815 // TODO: DEPRECATED FLAG 865 else if ("box" == keyword)
816 // Flag removed from simstate files in 1.11.1 866 {
817 // Keep if statement until we have guarenteed this flag 867 // deprecated
818 // no longer exists anywhere in simstate files. 868 }
819 else if ("require_identified" == keyword) 869 else if ("aabb_min" == keyword)
820 { 870 {
821// LLString::convertToU32(value, setting); 871 sscanf(value.c_str(), "%f %f %f",
822// setParcelFlag(PF_DENY_ANONYMOUS, setting); 872 &mAABBMin.mV[VX], &mAABBMin.mV[VY], &mAABBMin.mV[VZ]);
823 } 873 }
824 // TODO: DEPRECATED FLAG 874 else if ("use_access_group" == keyword)
825 // Flag removed from simstate files in 1.11.1 875 {
826 // Keep if statement until we have guarenteed this flag 876 LLString::convertToU32(value, setting);
827 // no longer exists anywhere in simstate files. 877 setParcelFlag(PF_USE_ACCESS_GROUP, setting);
828 else if ("require_transacted" == keyword) 878 }
829 { 879 else if ("use_access_list" == keyword)
830// LLString::convertToU32(value, setting); 880 {
831// setParcelFlag(PF_DENY_ANONYMOUS, setting); 881 LLString::convertToU32(value, setting);
832// setParcelFlag(PF_DENY_IDENTIFIED, setting); 882 setParcelFlag(PF_USE_ACCESS_LIST, setting);
833 } 883 }
834 else if ("restrict_pushobject" == keyword) 884 else if ("use_ban_list" == keyword)
835 { 885 {
836 LLString::convertToU32(value, setting); 886 LLString::convertToU32(value, setting);
837 setParcelFlag(PF_RESTRICT_PUSHOBJECT, setting); 887 setParcelFlag(PF_USE_BAN_LIST, setting);
838 } 888 }
839 else if ("deny_anonymous" == keyword) 889 else if ("group_name" == keyword)
840 { 890 {
841 LLString::convertToU32(value, setting); 891 llinfos << "found deprecated keyword group_name" << llendl;
842 setParcelFlag(PF_DENY_ANONYMOUS, setting); 892 }
843 } 893 else if ("group_id" == keyword)
844 // TODO: DEPRECATED FLAG 894 {
845 // Keep if statement until we have guarenteed this flag 895 mGroupID.set( value.c_str() );
846 // no longer exists anywhere in simstate files. 896 }
897 // TODO: DEPRECATED FLAG
898 // Flag removed from simstate files in 1.11.1
899 // Remove at some point where we have guarenteed this flag
900 // no longer exists anywhere in simstate files.
901 else if ("require_identified" == keyword)
902 {
903 // LLString::convertToU32(value, setting);
904 // setParcelFlag(PF_DENY_ANONYMOUS, setting);
905 }
906 // TODO: DEPRECATED FLAG
907 // Flag removed from simstate files in 1.11.1
908 // Remove at some point where we have guarenteed this flag
909 // no longer exists anywhere in simstate files.
910 else if ("require_transacted" == keyword)
911 {
912 // LLString::convertToU32(value, setting);
913 // setParcelFlag(PF_DENY_ANONYMOUS, setting);
914 // setParcelFlag(PF_DENY_IDENTIFIED, setting);
915 }
916 else if ("restrict_pushobject" == keyword)
917 {
918 LLString::convertToU32(value, setting);
919 setParcelFlag(PF_RESTRICT_PUSHOBJECT, setting);
920 }
921 else if ("deny_anonymous" == keyword)
922 {
923 LLString::convertToU32(value, setting);
924 setParcelFlag(PF_DENY_ANONYMOUS, setting);
925 }
847 else if ("deny_identified" == keyword) 926 else if ("deny_identified" == keyword)
848 { 927 {
849// LLString::convertToU32(value, setting); 928// LLString::convertToU32(value, setting);
@@ -1018,211 +1097,223 @@ BOOL LLParcel::importAccessEntry(std::istream& input_stream, LLAccessEntry* entr
1018 1097
1019BOOL LLParcel::exportStream(std::ostream& output_stream) 1098BOOL LLParcel::exportStream(std::ostream& output_stream)
1020{ 1099{
1021 S32 setting; 1100 S32 setting;
1022 char id_string[MAX_STRING]; /* Flawfinder: ignore */ 1101 char id_string[MAX_STRING]; /* Flawfinder: ignore */
1023 1102
1024 std::ios::fmtflags old_flags = output_stream.flags(); 1103 std::ios::fmtflags old_flags = output_stream.flags();
1025 output_stream.setf(std::ios::showpoint); 1104 output_stream.setf(std::ios::showpoint);
1026 output_stream << "\t{\n"; 1105 output_stream << "\t{\n";
1027 1106
1028 mID.toString(id_string); 1107 mID.toString(id_string);
1029 output_stream << "\t\t parcel_id " << id_string << "\n"; 1108 output_stream << "\t\t parcel_id " << id_string << "\n";
1030 output_stream << "\t\t status " << ownership_status_to_string(mStatus) << "\n"; 1109 output_stream << "\t\t status " << ownership_status_to_string(mStatus) << "\n";
1031 output_stream << "\t\t category " << category_to_string(mCategory) << "\n"; 1110 output_stream << "\t\t category " << category_to_string(mCategory) << "\n";
1032 1111
1033 output_stream << "\t\t local_id " << mLocalID << "\n"; 1112 output_stream << "\t\t local_id " << mLocalID << "\n";
1034 1113
1035 const char* name = (mName.empty() ? "" : mName.c_str() ); 1114 const char* name = (mName.empty() ? "" : mName.c_str() );
1036 output_stream << "\t\t name " << name << "\n"; 1115 output_stream << "\t\t name " << name << "\n";
1037 1116
1038 const char* desc = (mDesc.empty() ? "" : mDesc.c_str() ); 1117 const char* desc = (mDesc.empty() ? "" : mDesc.c_str() );
1039 output_stream << "\t\t desc " << desc << "\n"; 1118 output_stream << "\t\t desc " << desc << "\n";
1040 1119
1041 const char* music_url = (mMusicURL.empty() ? "" : mMusicURL.c_str() ); 1120 const char* music_url = (mMusicURL.empty() ? "" : mMusicURL.c_str() );
1042 output_stream << "\t\t music_url " << music_url << "\n"; 1121 output_stream << "\t\t music_url " << music_url << "\n";
1043 1122
1044 const char* media_url = (mMediaURL.empty() ? "" : mMediaURL.c_str() ); 1123 const char* media_url = (mMediaURL.empty() ? "" : mMediaURL.c_str() );
1045 output_stream << "\t\t media_url " << media_url << "\n"; 1124 output_stream << "\t\t media_url " << media_url << "\n";
1046 1125
1047 output_stream << "\t\t media_auto_scale " << (mMediaAutoScale ? 1 : 0) << "\n"; 1126 const char* media_type = (mMediaType.empty() ? "" : mMediaType.c_str() );
1048 1127 output_stream << "\t\t media_type " << media_type << "\n";
1049 mMediaID.toString(id_string); 1128
1050 output_stream << "\t\t media_id " << id_string << "\n"; 1129 const char* media_desc = (mMediaDesc.empty() ? "" : mMediaDesc.c_str() );
1051 1130 output_stream << "\t\t media_desc " << media_desc << "\n";
1052 mOwnerID.toString(id_string); 1131
1053 output_stream << "\t\t owner_id " << id_string << "\n"; 1132 output_stream << "\t\t media_auto_scale " << (mMediaAutoScale ? 1 : 0) << "\n";
1054 output_stream << "\t\t group_owned " << (mGroupOwned ? 1 : 0) << "\n"; 1133 output_stream << "\t\t media_loop " << (mMediaLoop ? 1 : 0) << "\n";
1055 output_stream << "\t\t clean_other_time " << getCleanOtherTime() << "\n"; 1134 output_stream << "\t\t obscure_media " << (mObscureMedia ? 1 : 0) << "\n";
1056 1135 output_stream << "\t\t obscure_music " << (mObscureMusic ? 1 : 0) << "\n";
1057 if(!mAuthBuyerID.isNull()) 1136
1058 { 1137 mMediaID.toString(id_string);
1059 mAuthBuyerID.toString(id_string); 1138 output_stream << "\t\t media_id " << id_string << "\n";
1060 output_stream << "\t\t auth_buyer_id " << id_string << "\n"; 1139
1061 } 1140 output_stream << "\t\t media_width " << mMediaWidth << "\n";
1062 if (!mSnapshotID.isNull()) 1141 output_stream << "\t\t media_height " << mMediaHeight << "\n";
1063 { 1142
1064 mSnapshotID.toString(id_string); 1143 mOwnerID.toString(id_string);
1065 output_stream << "\t\t snapshot_id " << id_string << "\n"; 1144 output_stream << "\t\t owner_id " << id_string << "\n";
1066 } 1145 output_stream << "\t\t group_owned " << (mGroupOwned ? 1 : 0) << "\n";
1067 if (!mUserLocation.isExactlyZero()) 1146 output_stream << "\t\t clean_other_time " << getCleanOtherTime() << "\n";
1068 { 1147
1069 output_stream << "\t\t user_location " 1148 if(!mAuthBuyerID.isNull())
1070 << (F64)mUserLocation.mV[VX] 1149 {
1071 << " " << (F64)mUserLocation.mV[VY] 1150 mAuthBuyerID.toString(id_string);
1072 << " " << (F64)mUserLocation.mV[VZ] << "\n"; 1151 output_stream << "\t\t auth_buyer_id " << id_string << "\n";
1073 output_stream << "\t\t user_look_at " 1152 }
1074 << (F64)mUserLookAt.mV[VX] 1153 if (!mSnapshotID.isNull())
1075 << " " << (F64)mUserLookAt.mV[VY] 1154 {
1076 << " " << (F64)mUserLookAt.mV[VZ] << "\n"; 1155 mSnapshotID.toString(id_string);
1077 } 1156 output_stream << "\t\t snapshot_id " << id_string << "\n";
1078 output_stream << "\t\t landing_type " << mLandingType << "\n"; 1157 }
1079 //if(mJoinNeighbors) 1158 if (!mUserLocation.isExactlyZero())
1080 //{ 1159 {
1081 // output_stream << "\t\t join_neighbors " << mJoinNeighbors << "\n"; 1160 output_stream << "\t\t user_location "
1082 //} 1161 << (F64)mUserLocation.mV[VX]
1083 if(mSaleTimerExpires.getStarted()) 1162 << " " << (F64)mUserLocation.mV[VY]
1084 { 1163 << " " << (F64)mUserLocation.mV[VZ] << "\n";
1085 S32 dt_sec = (S32) mSaleTimerExpires.getRemainingTimeF32()+60; // Add a minute to prevent race conditions 1164 output_stream << "\t\t user_look_at "
1086 output_stream << "\t\t revert_sale " << dt_sec << "\n"; 1165 << (F64)mUserLookAt.mV[VX]
1087 //output_stream << "\t\t revert_action " << revert_action_to_string(mExpireAction) << "\n"; 1166 << " " << (F64)mUserLookAt.mV[VY]
1088 output_stream << "\t\t extended_grace " << mGraceExtension << "\n"; 1167 << " " << (F64)mUserLookAt.mV[VZ] << "\n";
1089 } 1168 }
1090 1169 output_stream << "\t\t landing_type " << mLandingType << "\n";
1091 if(0 != mAuctionID) 1170 //if(mJoinNeighbors)
1092 { 1171 //{
1093 output_stream << "\t\t auction_id " << mAuctionID << "\n"; 1172 // output_stream << "\t\t join_neighbors " << mJoinNeighbors << "\n";
1094 } 1173 //}
1095 1174 if(mSaleTimerExpires.getStarted())
1096 output_stream << "\t\t allow_modify " << getAllowModify() << "\n"; 1175 {
1097 output_stream << "\t\t allow_group_modify " << getAllowGroupModify() << "\n"; 1176 S32 dt_sec = (S32) mSaleTimerExpires.getRemainingTimeF32()+60; // Add a minute to prevent race conditions
1098 output_stream << "\t\t allow_all_object_entry " << getAllowAllObjectEntry() << "\n"; 1177 output_stream << "\t\t revert_sale " << dt_sec << "\n";
1099 output_stream << "\t\t allow_group_object_entry " << getAllowGroupObjectEntry() << "\n"; 1178 //output_stream << "\t\t revert_action " << revert_action_to_string(mExpireAction) << "\n";
1100 output_stream << "\t\t allow_terraform " << getAllowTerraform() << "\n"; 1179 output_stream << "\t\t extended_grace " << mGraceExtension << "\n";
1101 output_stream << "\t\t allow_deed_to_group " << getAllowDeedToGroup() << "\n"; 1180 }
1102 output_stream << "\t\t contribute_with_deed " << getContributeWithDeed() << "\n"; 1181
1103 output_stream << "\t\t allow_damage " << getAllowDamage() << "\n"; 1182 if(0 != mAuctionID)
1104 output_stream << "\t\t claim_date " << (S32)mClaimDate << "\n"; 1183 {
1105 output_stream << "\t\t claim_price " << mClaimPricePerMeter << "\n"; 1184 output_stream << "\t\t auction_id " << mAuctionID << "\n";
1106 output_stream << "\t\t rent_price " << mRentPricePerMeter << "\n"; 1185 }
1107 output_stream << "\t\t discount_rate " << mDiscountRate << "\n"; 1186
1108 output_stream << "\t\t allow_fly " << (getAllowFly() ? 1 : 0) << "\n"; 1187 output_stream << "\t\t allow_modify " << getAllowModify() << "\n";
1109 output_stream << "\t\t allow_landmark " << (getAllowLandmark() ? 1 : 0) << "\n"; 1188 output_stream << "\t\t allow_group_modify " << getAllowGroupModify() << "\n";
1110 output_stream << "\t\t sound_local " << (getSoundLocal() ? 1 : 0) << "\n"; 1189 output_stream << "\t\t allow_all_object_entry " << getAllowAllObjectEntry() << "\n";
1111 output_stream << "\t\t allow_scripts " << (getAllowOtherScripts() ? 1 : 0) << "\n"; 1190 output_stream << "\t\t allow_group_object_entry " << getAllowGroupObjectEntry() << "\n";
1112 output_stream << "\t\t allow_group_scripts " << (getAllowGroupScripts() ? 1 : 0) << "\n"; 1191 output_stream << "\t\t allow_terraform " << getAllowTerraform() << "\n";
1113 output_stream << "\t\t allow_voice_chat " << (getVoiceEnabled() ? 1 : 0) << "\n"; 1192 output_stream << "\t\t allow_deed_to_group " << getAllowDeedToGroup() << "\n";
1114 output_stream << "\t\t use_estate_voice_chan " << (getVoiceUseEstateChannel() ? 1 : 0) << "\n"; 1193 output_stream << "\t\t contribute_with_deed " << getContributeWithDeed() << "\n";
1115 output_stream << "\t\t for_sale " << (getForSale() ? 1 : 0) << "\n"; 1194 output_stream << "\t\t allow_damage " << getAllowDamage() << "\n";
1116 output_stream << "\t\t sell_w_objects " << (getSellWithObjects() ? 1 : 0) << "\n"; 1195 output_stream << "\t\t claim_date " << (S32)mClaimDate << "\n";
1117 output_stream << "\t\t draw_distance " << mDrawDistance << "\n"; 1196 output_stream << "\t\t claim_price " << mClaimPricePerMeter << "\n";
1118 output_stream << "\t\t sale_price " << mSalePrice << "\n"; 1197 output_stream << "\t\t rent_price " << mRentPricePerMeter << "\n";
1119 1198 output_stream << "\t\t discount_rate " << mDiscountRate << "\n";
1120 setting = (getParcelFlag(PF_USE_ACCESS_GROUP) ? 1 : 0); 1199 output_stream << "\t\t allow_fly " << (getAllowFly() ? 1 : 0) << "\n";
1121 output_stream << "\t\t use_access_group " << setting << "\n"; 1200 output_stream << "\t\t allow_landmark " << (getAllowLandmark() ? 1 : 0) << "\n";
1122 1201 output_stream << "\t\t sound_local " << (getSoundLocal() ? 1 : 0) << "\n";
1123 setting = (getParcelFlag(PF_USE_ACCESS_LIST) ? 1 : 0); 1202 output_stream << "\t\t allow_scripts " << (getAllowOtherScripts() ? 1 : 0) << "\n";
1124 output_stream << "\t\t use_access_list " << setting << "\n"; 1203 output_stream << "\t\t allow_group_scripts " << (getAllowGroupScripts() ? 1 : 0) << "\n";
1125 1204 output_stream << "\t\t allow_voice_chat " << (getVoiceEnabled() ? 1 : 0) << "\n";
1126 setting = (getParcelFlag(PF_USE_BAN_LIST) ? 1 : 0); 1205 output_stream << "\t\t use_estate_voice_chan " << (getVoiceUseEstateChannel() ? 1 : 0) << "\n";
1127 output_stream << "\t\t use_ban_list " << setting << "\n"; 1206 output_stream << "\t\t for_sale " << (getForSale() ? 1 : 0) << "\n";
1128 1207 output_stream << "\t\t sell_w_objects " << (getSellWithObjects() ? 1 : 0) << "\n";
1129 mGroupID.toString(id_string); 1208 output_stream << "\t\t draw_distance " << mDrawDistance << "\n";
1130 output_stream << "\t\t group_id " << id_string << "\n"; 1209 output_stream << "\t\t sale_price " << mSalePrice << "\n";
1131 1210
1132 //const char* group_name 1211 setting = (getParcelFlag(PF_USE_ACCESS_GROUP) ? 1 : 0);
1133 // = (mGroupName.isEmpty() ? "" : mGroupName.c_str() ); 1212 output_stream << "\t\t use_access_group " << setting << "\n";
1134 //output_stream << "\t\t group_name " << group_name << "\n"; 1213
1135 1214 setting = (getParcelFlag(PF_USE_ACCESS_LIST) ? 1 : 0);
1136 setting = (getParcelFlag(PF_USE_PASS_LIST) ? 1 : 0); 1215 output_stream << "\t\t use_access_list " << setting << "\n";
1137 output_stream << "\t\t use_pass_list " << setting << "\n"; 1216
1138 1217 setting = (getParcelFlag(PF_USE_BAN_LIST) ? 1 : 0);
1139 output_stream << "\t\t pass_price " << mPassPrice << "\n"; 1218 output_stream << "\t\t use_ban_list " << setting << "\n";
1140 output_stream << "\t\t pass_hours " << mPassHours << "\n"; 1219
1141 1220 mGroupID.toString(id_string);
1142 setting = (getParcelFlag(PF_SHOW_DIRECTORY) ? 1 : 0); 1221 output_stream << "\t\t group_id " << id_string << "\n";
1143 output_stream << "\t\t show_directory " << setting << "\n"; 1222
1144 1223 //const char* group_name
1145 setting = (getParcelFlag(PF_ALLOW_PUBLISH) ? 1 : 0); 1224 // = (mGroupName.isEmpty() ? "" : mGroupName.c_str() );
1146 output_stream << "\t\t allow_publish " << setting << "\n"; 1225 //output_stream << "\t\t group_name " << group_name << "\n";
1147 1226
1148 setting = (getParcelFlag(PF_MATURE_PUBLISH) ? 1 : 0); 1227 setting = (getParcelFlag(PF_USE_PASS_LIST) ? 1 : 0);
1149 output_stream << "\t\t mature_publish " << setting << "\n"; 1228 output_stream << "\t\t use_pass_list " << setting << "\n";
1150 1229
1151 setting = (getParcelFlag(PF_DENY_ANONYMOUS) ? 1 : 0); 1230 output_stream << "\t\t pass_price " << mPassPrice << "\n";
1152 output_stream << "\t\t deny_anonymous " << setting << "\n"; 1231 output_stream << "\t\t pass_hours " << mPassHours << "\n";
1153 1232
1154// setting = (getParcelFlag(PF_DENY_IDENTIFIED) ? 1 : 0); 1233 setting = (getParcelFlag(PF_SHOW_DIRECTORY) ? 1 : 0);
1155// output_stream << "\t\t deny_identified " << setting << "\n"; 1234 output_stream << "\t\t show_directory " << setting << "\n";
1156 1235
1157// setting = (getParcelFlag(PF_DENY_TRANSACTED) ? 1 : 0); 1236 setting = (getParcelFlag(PF_ALLOW_PUBLISH) ? 1 : 0);
1158// output_stream << "\t\t deny_transacted " << setting << "\n"; 1237 output_stream << "\t\t allow_publish " << setting << "\n";
1159 1238
1160 setting = (getParcelFlag(PF_DENY_AGEUNVERIFIED) ? 1 : 0); 1239 setting = (getParcelFlag(PF_MATURE_PUBLISH) ? 1 : 0);
1161 output_stream << "\t\t deny_age_unverified " << setting << "\n"; 1240 output_stream << "\t\t mature_publish " << setting << "\n";
1162 1241
1163 setting = (getParcelFlag(PF_RESTRICT_PUSHOBJECT) ? 1 : 0); 1242 setting = (getParcelFlag(PF_DENY_ANONYMOUS) ? 1 : 0);
1164 output_stream << "\t\t restrict_pushobject " << setting << "\n"; 1243 output_stream << "\t\t deny_anonymous " << setting << "\n";
1165 1244
1166 output_stream << "\t\t aabb_min " 1245// setting = (getParcelFlag(PF_DENY_IDENTIFIED) ? 1 : 0);
1167 << mAABBMin.mV[VX] 1246// output_stream << "\t\t deny_identified " << setting << "\n";
1168 << " " << mAABBMin.mV[VY] 1247
1169 << " " << mAABBMin.mV[VZ] << "\n"; 1248// setting = (getParcelFlag(PF_DENY_TRANSACTED) ? 1 : 0);
1170 1249// output_stream << "\t\t deny_transacted " << setting << "\n";
1171 if (!mAccessList.empty()) 1250
1172 { 1251 setting = (getParcelFlag(PF_DENY_AGEUNVERIFIED) ? 1 : 0);
1173 output_stream << "\t\t access_list " << mAccessList.size() << "\n"; 1252 output_stream << "\t\t deny_age_unverified " << setting << "\n";
1174 access_map_const_iterator cit = mAccessList.begin(); 1253
1175 access_map_const_iterator end = mAccessList.end(); 1254 setting = (getParcelFlag(PF_RESTRICT_PUSHOBJECT) ? 1 : 0);
1176 1255 output_stream << "\t\t restrict_pushobject " << setting << "\n";
1177 for ( ; cit != end; ++cit) 1256
1178 { 1257 output_stream << "\t\t aabb_min "
1179 output_stream << "\t\t{\n"; 1258 << mAABBMin.mV[VX]
1180 const LLAccessEntry& entry = (*cit).second; 1259 << " " << mAABBMin.mV[VY]
1181 entry.mID.toString(id_string); 1260 << " " << mAABBMin.mV[VZ] << "\n";
1182 output_stream << "\t\t\tid " << id_string << "\n"; 1261
1183 output_stream << "\t\t\ttime " << entry.mTime << "\n"; 1262 if (!mAccessList.empty())
1184 output_stream << "\t\t\tflags " << entry.mFlags << "\n"; 1263 {
1185 output_stream << "\t\t}\n"; 1264 output_stream << "\t\t access_list " << mAccessList.size() << "\n";
1186 } 1265 access_map_const_iterator cit = mAccessList.begin();
1187 } 1266 access_map_const_iterator end = mAccessList.end();
1188 1267
1189 if (!mBanList.empty()) 1268 for ( ; cit != end; ++cit)
1190 { 1269 {
1191 output_stream << "\t\t ban_list " << mBanList.size() << "\n"; 1270 output_stream << "\t\t{\n";
1192 access_map_const_iterator cit = mBanList.begin(); 1271 const LLAccessEntry& entry = (*cit).second;
1193 access_map_const_iterator end = mBanList.end(); 1272 entry.mID.toString(id_string);
1194 1273 output_stream << "\t\t\tid " << id_string << "\n";
1195 for ( ; cit != end; ++cit) 1274 output_stream << "\t\t\ttime " << entry.mTime << "\n";
1196 { 1275 output_stream << "\t\t\tflags " << entry.mFlags << "\n";
1197 output_stream << "\t\t{\n"; 1276 output_stream << "\t\t}\n";
1198 const LLAccessEntry& entry = (*cit).second; 1277 }
1199 entry.mID.toString(id_string); 1278 }
1200 output_stream << "\t\t\tid " << id_string << "\n"; 1279
1201 output_stream << "\t\t\ttime " << entry.mTime << "\n"; 1280 if (!mBanList.empty())
1202 output_stream << "\t\t\tflags " << entry.mFlags << "\n"; 1281 {
1203 output_stream << "\t\t}\n"; 1282 output_stream << "\t\t ban_list " << mBanList.size() << "\n";
1204 } 1283 access_map_const_iterator cit = mBanList.begin();
1205 } 1284 access_map_const_iterator end = mBanList.end();
1206 1285
1207 /*if (mRenterList.count() > 0) 1286 for ( ; cit != end; ++cit)
1208 { 1287 {
1209 output_stream << "\t\t renter_list " << mRenterList.count() << "\n"; 1288 output_stream << "\t\t{\n";
1210 for (i = 0; i < mRenterList.count(); i++) 1289 const LLAccessEntry& entry = (*cit).second;
1211 { 1290 entry.mID.toString(id_string);
1212 output_stream << "\t\t{\n"; 1291 output_stream << "\t\t\tid " << id_string << "\n";
1213 const LLAccessEntry& entry = mRenterList.get(i); 1292 output_stream << "\t\t\ttime " << entry.mTime << "\n";
1214 entry.mID.toString(id_string); 1293 output_stream << "\t\t\tflags " << entry.mFlags << "\n";
1215 output_stream << "\t\t\tid " << id_string << "\n"; 1294 output_stream << "\t\t}\n";
1216 output_stream << "\t\t\ttime " << entry.mTime << "\n"; 1295 }
1217 output_stream << "\t\t\tflags " << entry.mFlags << "\n"; 1296 }
1218 output_stream << "\t\t}\n"; 1297
1219 } 1298 /*if (mRenterList.count() > 0)
1220 }*/ 1299 {
1221 1300 output_stream << "\t\t renter_list " << mRenterList.count() << "\n";
1222 output_stream << "\t}\n"; 1301 for (i = 0; i < mRenterList.count(); i++)
1223 output_stream.flags(old_flags); 1302 {
1224 1303 output_stream << "\t\t{\n";
1225 return TRUE; 1304 const LLAccessEntry& entry = mRenterList.get(i);
1305 entry.mID.toString(id_string);
1306 output_stream << "\t\t\tid " << id_string << "\n";
1307 output_stream << "\t\t\ttime " << entry.mTime << "\n";
1308 output_stream << "\t\t\tflags " << entry.mFlags << "\n";
1309 output_stream << "\t\t}\n";
1310 }
1311 }*/
1312
1313 output_stream << "\t}\n";
1314 output_stream.flags(old_flags);
1315
1316 return TRUE;
1226} 1317}
1227 1318
1228 1319
@@ -1248,6 +1339,38 @@ void LLParcel::packMessage(LLMessageSystem* msg)
1248 msg->addU8Fast( _PREHASH_LandingType, (U8)mLandingType); 1339 msg->addU8Fast( _PREHASH_LandingType, (U8)mLandingType);
1249} 1340}
1250 1341
1342// Assumes we are in a block "ParcelData"
1343void LLParcel::packMessage(LLSD& msg)
1344{
1345 msg["local_id"] = getLocalID();
1346 msg["parcel_flags"] = ll_sd_from_U32(getParcelFlags());
1347 msg["sale_price"] = getSalePrice();
1348 msg["name"] = getName();
1349 msg["description"] = getDesc();
1350 msg["music_url"] = getMusicURL();
1351 msg["media_url"] = getMediaURL();
1352 msg["media_desc"] = getMediaDesc();
1353 msg["media_type"] = getMediaType();
1354 msg["media_width"] = getMediaWidth();
1355 msg["media_height"] = getMediaHeight();
1356 msg["auto_scale"] = getMediaAutoScale();
1357 msg["media_loop"] = getMediaLoop();
1358 msg["obscure_media"] = getObscureMedia();
1359 msg["obscure_music"] = getObscureMusic();
1360 msg["media_id"] = getMediaID();
1361 msg["group_id"] = getGroupID();
1362 msg["pass_price"] = mPassPrice;
1363 msg["pass_hours"] = mPassHours;
1364 msg["category"] = (U8)mCategory;
1365 msg["auth_buyer_id"] = mAuthBuyerID;
1366 msg["snapshot_id"] = mSnapshotID;
1367 msg["snapshot_id"] = mSnapshotID;
1368 msg["user_location"] = ll_sd_from_vector3(mUserLocation);
1369 msg["user_look_at"] = ll_sd_from_vector3(mUserLookAt);
1370 msg["landing_type"] = (U8)mLandingType;
1371
1372}
1373
1251 1374
1252void LLParcel::unpackMessage(LLMessageSystem* msg) 1375void LLParcel::unpackMessage(LLMessageSystem* msg)
1253{ 1376{
@@ -1281,8 +1404,30 @@ void LLParcel::unpackMessage(LLMessageSystem* msg)
1281 U8 landing_type; 1404 U8 landing_type;
1282 msg->getU8Fast( _PREHASH_ParcelData,_PREHASH_LandingType, landing_type); 1405 msg->getU8Fast( _PREHASH_ParcelData,_PREHASH_LandingType, landing_type);
1283 mLandingType = (ELandingType)landing_type; 1406 mLandingType = (ELandingType)landing_type;
1284}
1285 1407
1408 // New Media Data
1409 // Note: the message has been converted to TCP
1410 if(msg->getNumberOfBlocks("MediaData") > 0)
1411 {
1412 msg->getString("MediaData", "MediaDesc", 256, buffer);
1413 setMediaDesc(buffer);
1414 msg->getString("MediaData", "MediaType", 256, buffer);
1415 setMediaType(buffer);
1416 msg->getS32("MediaData", "MediaWidth", mMediaWidth);
1417 msg->getS32("MediaData", "MediaHeight", mMediaHeight);
1418 msg->getU8 ( "MediaData", "MediaLoop", mMediaLoop );
1419 msg->getU8 ( "MediaData", "ObscureMedia", mObscureMedia );
1420 msg->getU8 ( "MediaData", "ObscureMusic", mObscureMusic );
1421 }
1422 else
1423 {
1424 setMediaType("video/vnd.secondlife.qt.legacy");
1425 setMediaDesc("No Description available without Server Upgrade");
1426 mMediaLoop = true;
1427 mObscureMedia = true;
1428 mObscureMusic = true;
1429 }
1430}
1286 1431
1287void LLParcel::packAccessEntries(LLMessageSystem* msg, 1432void LLParcel::packAccessEntries(LLMessageSystem* msg,
1288 const std::map<LLUUID,LLAccessEntry>& list) 1433 const std::map<LLUUID,LLAccessEntry>& list)
@@ -1702,27 +1847,34 @@ BOOL LLParcel::isBuyerAuthorized(const LLUUID& buyer_id) const
1702 1847
1703void LLParcel::clearParcel() 1848void LLParcel::clearParcel()
1704{ 1849{
1705 overrideParcelFlags(PF_DEFAULT); 1850 overrideParcelFlags(PF_DEFAULT);
1706 setName(NULL); 1851 setName(NULL);
1707 setDesc(NULL); 1852 setDesc(NULL);
1708 setMusicURL(NULL); 1853 setMediaURL(NULL);
1709 setMediaURL(NULL); 1854 setMediaType(NULL);
1710 setMediaID(LLUUID::null); 1855 setMediaID(LLUUID::null);
1711 setMediaAutoScale(0); 1856 setMediaDesc(NULL);
1712 setInEscrow(FALSE); 1857 setMediaAutoScale(0);
1713 setAuthorizedBuyerID(LLUUID::null); 1858 setMediaLoop(TRUE);
1714 setCategory(C_NONE); 1859 mObscureMedia = 0;
1715 setSnapshotID(LLUUID::null); 1860 mObscureMusic = 0;
1716 setUserLocation(LLVector3::zero); 1861 mMediaWidth = 0;
1717 setUserLookAt(LLVector3::x_axis); 1862 mMediaHeight = 0;
1718 setLandingType(L_LANDING_POINT); 1863 setMusicURL(NULL);
1719 setAuctionID(0); 1864 setInEscrow(FALSE);
1720 setGroupID(LLUUID::null); 1865 setAuthorizedBuyerID(LLUUID::null);
1721 setPassPrice(0); 1866 setCategory(C_NONE);
1722 setPassHours(0.f); 1867 setSnapshotID(LLUUID::null);
1723 mAccessList.clear(); 1868 setUserLocation(LLVector3::zero);
1724 mBanList.clear(); 1869 setUserLookAt(LLVector3::x_axis);
1725 //mRenterList.reset(); 1870 setLandingType(L_LANDING_POINT);
1871 setAuctionID(0);
1872 setGroupID(LLUUID::null);
1873 setPassPrice(0);
1874 setPassHours(0.f);
1875 mAccessList.clear();
1876 mBanList.clear();
1877 //mRenterList.reset();
1726} 1878}
1727 1879
1728void LLParcel::dump() 1880void LLParcel::dump()
@@ -1826,6 +1978,3 @@ LLParcel::ECategory category_ui_string_to_category(const char* s)
1826 // is a distinct option from "None" and "Other" 1978 // is a distinct option from "None" and "Other"
1827 return LLParcel::C_ANY; 1979 return LLParcel::C_ANY;
1828} 1980}
1829
1830
1831
diff --git a/linden/indra/llinventory/llparcel.h b/linden/indra/llinventory/llparcel.h
index 10fe6dc..9c91d94 100644
--- a/linden/indra/llinventory/llparcel.h
+++ b/linden/indra/llinventory/llparcel.h
@@ -211,8 +211,15 @@ public:
211 void setDesc(const LLString& desc); 211 void setDesc(const LLString& desc);
212 void setMusicURL(const LLString& url); 212 void setMusicURL(const LLString& url);
213 void setMediaURL(const LLString& url); 213 void setMediaURL(const LLString& url);
214 void setMediaType(const char* type);
215 void setMediaDesc(const char* desc);
214 void setMediaID(const LLUUID& id) { mMediaID = id; } 216 void setMediaID(const LLUUID& id) { mMediaID = id; }
215 void setMediaAutoScale ( U8 flagIn ) { mMediaAutoScale = flagIn; } 217 void setMediaAutoScale ( U8 flagIn ) { mMediaAutoScale = flagIn; }
218 void setMediaLoop (U8 loop) { mMediaLoop = loop; }
219 void setObscureMedia( U8 flagIn ) { mObscureMedia = flagIn; }
220 void setObscureMusic( U8 flagIn ) { mObscureMusic = flagIn; }
221 void setMediaWidth(S32 width);
222 void setMediaHeight(S32 height);
216 virtual void setLocalID(S32 local_id); 223 virtual void setLocalID(S32 local_id);
217 224
218 // blow away all the extra crap lurking in parcels, including urls, access lists, etc 225 // blow away all the extra crap lurking in parcels, including urls, access lists, etc
@@ -268,6 +275,7 @@ public:
268 BOOL exportStream(std::ostream& output_stream); 275 BOOL exportStream(std::ostream& output_stream);
269 276
270 void packMessage(LLMessageSystem* msg); 277 void packMessage(LLMessageSystem* msg);
278 void packMessage(LLSD& msg);
271 void unpackMessage(LLMessageSystem* msg); 279 void unpackMessage(LLMessageSystem* msg);
272 280
273 void packAccessEntries(LLMessageSystem* msg, 281 void packAccessEntries(LLMessageSystem* msg,
@@ -299,8 +307,15 @@ public:
299 const LLString& getDesc() const { return mDesc; } 307 const LLString& getDesc() const { return mDesc; }
300 const LLString& getMusicURL() const { return mMusicURL; } 308 const LLString& getMusicURL() const { return mMusicURL; }
301 const LLString& getMediaURL() const { return mMediaURL; } 309 const LLString& getMediaURL() const { return mMediaURL; }
310 const char* getMediaDesc() const { return mMediaDesc.c_str(); }
311 const char* getMediaType() const { return mMediaType.c_str(); }
302 const LLUUID& getMediaID() const { return mMediaID; } 312 const LLUUID& getMediaID() const { return mMediaID; }
313 S32 getMediaWidth() const { return mMediaWidth; }
314 S32 getMediaHeight() const { return mMediaHeight; }
303 U8 getMediaAutoScale() const { return mMediaAutoScale; } 315 U8 getMediaAutoScale() const { return mMediaAutoScale; }
316 U8 getMediaLoop() const { return mMediaLoop; }
317 U8 getObscureMedia() const { return mObscureMedia; }
318 U8 getObscureMusic() const { return mObscureMusic; }
304 S32 getLocalID() const { return mLocalID; } 319 S32 getLocalID() const { return mLocalID; }
305 const LLUUID& getOwnerID() const { return mOwnerID; } 320 const LLUUID& getOwnerID() const { return mOwnerID; }
306 const LLUUID& getGroupID() const { return mGroupID; } 321 const LLUUID& getGroupID() const { return mGroupID; }
@@ -576,7 +591,14 @@ protected:
576 LLString mDesc; 591 LLString mDesc;
577 LLString mMusicURL; 592 LLString mMusicURL;
578 LLString mMediaURL; 593 LLString mMediaURL;
594 std::string mMediaDesc;
595 std::string mMediaType;
596 S32 mMediaWidth;
597 S32 mMediaHeight;
579 U8 mMediaAutoScale; 598 U8 mMediaAutoScale;
599 U8 mMediaLoop;
600 U8 mObscureMedia;
601 U8 mObscureMusic;
580 LLUUID mMediaID; 602 LLUUID mMediaID;
581 S32 mPassPrice; 603 S32 mPassPrice;
582 F32 mPassHours; 604 F32 mPassHours;
diff --git a/linden/indra/llinventory/llpermissions.cpp b/linden/indra/llinventory/llpermissions.cpp
index 0fec5b8..8d800aa 100644
--- a/linden/indra/llinventory/llpermissions.cpp
+++ b/linden/indra/llinventory/llpermissions.cpp
@@ -37,6 +37,7 @@
37// library includes 37// library includes
38#include "message.h" 38#include "message.h"
39#include "metapropertyt.h" 39#include "metapropertyt.h"
40#include "llsd.h"
40 41
41///---------------------------------------------------------------------------- 42///----------------------------------------------------------------------------
42/// Class LLPermissions 43/// Class LLPermissions
@@ -473,6 +474,25 @@ BOOL LLPermissions::allowOperationBy(PermissionBit op, const LLUUID& requester,
473} 474}
474 475
475// 476//
477// LLSD support for HTTP messages.
478//
479LLSD LLPermissions::packMessage() const
480{
481 LLSD result;
482 result["creator-id"] = mCreator;
483 result["owner-id"] = mOwner;
484 result["group-id"] = mGroup;
485
486 result["base-mask"] = (S32)mMaskBase;
487 result["owner-mask"] = (S32)mMaskOwner;
488 result["group-mask"] = (S32)mMaskGroup;
489 result["everyone-mask"] = (S32)mMaskEveryone;
490 result["next-owner-mask"]= (S32)mMaskNextOwner;
491 result["group-owned"] = (BOOL)mIsGroupOwned;
492 return result;
493}
494
495//
476// Messaging support 496// Messaging support
477// 497//
478void LLPermissions::packMessage(LLMessageSystem* msg) const 498void LLPermissions::packMessage(LLMessageSystem* msg) const
@@ -489,6 +509,19 @@ void LLPermissions::packMessage(LLMessageSystem* msg) const
489 msg->addBOOLFast(_PREHASH_GroupOwned, (BOOL)mIsGroupOwned); 509 msg->addBOOLFast(_PREHASH_GroupOwned, (BOOL)mIsGroupOwned);
490} 510}
491 511
512void LLPermissions::unpackMessage(LLSD perms)
513{
514 mCreator = perms["creator-id"];
515 mOwner = perms["owner-id"];
516 mGroup = perms["group-id"];
517
518 mMaskBase = (U32)perms["base-mask"].asInteger();
519 mMaskOwner = (U32)perms["owner-mask"].asInteger();
520 mMaskGroup = (U32)perms["group-mask"].asInteger();
521 mMaskEveryone = (U32)perms["everyone-mask"].asInteger();
522 mMaskNextOwner = (U32)perms["next-owner-mask"].asInteger();
523 mIsGroupOwned = perms["group-owned"].asBoolean();
524}
492 525
493void LLPermissions::unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num) 526void LLPermissions::unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num)
494{ 527{
diff --git a/linden/indra/llinventory/llpermissions.h b/linden/indra/llinventory/llpermissions.h
index cb4f4b5..05a30f6 100644
--- a/linden/indra/llinventory/llpermissions.h
+++ b/linden/indra/llinventory/llpermissions.h
@@ -294,6 +294,9 @@ public:
294 // MISC METHODS and OPERATORS 294 // MISC METHODS and OPERATORS
295 // 295 //
296 296
297 LLSD packMessage() const;
298 void unpackMessage(LLSD perms);
299
297 // For messaging system support 300 // For messaging system support
298 void packMessage(LLMessageSystem* msg) const; 301 void packMessage(LLMessageSystem* msg) const;
299 void unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0); 302 void unpackMessage(LLMessageSystem* msg, const char* block, S32 block_num = 0);
diff --git a/linden/indra/llinventory/llsaleinfo.cpp b/linden/indra/llinventory/llsaleinfo.cpp
index e7c429b..bff075b 100644
--- a/linden/indra/llinventory/llsaleinfo.cpp
+++ b/linden/indra/llinventory/llsaleinfo.cpp
@@ -280,6 +280,17 @@ void LLSaleInfo::setSalePrice(S32 price)
280 mSalePrice = llclamp(mSalePrice, 0, S32_MAX); 280 mSalePrice = llclamp(mSalePrice, 0, S32_MAX);
281} 281}
282 282
283LLSD LLSaleInfo::packMessage() const
284{
285 LLSD result;
286
287 U8 sale_type = static_cast<U8>(mSaleType);
288 result["sale-type"] = (U8)sale_type;
289 result["sale-price"] = (S32)mSalePrice;
290 //result[_PREHASH_NextOwnerMask] = mNextOwnerPermMask;
291 return result;
292}
293
283void LLSaleInfo::packMessage(LLMessageSystem* msg) const 294void LLSaleInfo::packMessage(LLMessageSystem* msg) const
284{ 295{
285 U8 sale_type = static_cast<U8>(mSaleType); 296 U8 sale_type = static_cast<U8>(mSaleType);
@@ -288,6 +299,16 @@ void LLSaleInfo::packMessage(LLMessageSystem* msg) const
288 //msg->addU32Fast(_PREHASH_NextOwnerMask, mNextOwnerPermMask); 299 //msg->addU32Fast(_PREHASH_NextOwnerMask, mNextOwnerPermMask);
289} 300}
290 301
302void LLSaleInfo::unpackMessage(LLSD sales)
303{
304 U8 sale_type = (U8)sales["sale-type"].asInteger();
305 mSaleType = static_cast<EForSale>(sale_type);
306
307 mSalePrice = (S32)sales["sale-price"].asInteger();
308 mSalePrice = llclamp(mSalePrice, 0, S32_MAX);
309 //msg->getU32Fast(block, _PREHASH_NextOwnerMask, mNextOwnerPermMask);
310}
311
291void LLSaleInfo::unpackMessage(LLMessageSystem* msg, const char* block) 312void LLSaleInfo::unpackMessage(LLMessageSystem* msg, const char* block)
292{ 313{
293 U8 sale_type; 314 U8 sale_type;
diff --git a/linden/indra/llinventory/llsaleinfo.h b/linden/indra/llinventory/llsaleinfo.h
index 2fc2fd0..0af8d89 100644
--- a/linden/indra/llinventory/llsaleinfo.h
+++ b/linden/indra/llinventory/llsaleinfo.h
@@ -103,6 +103,9 @@ public:
103 LLXMLNode *exportFileXML() const; 103 LLXMLNode *exportFileXML() const;
104 BOOL importXML(LLXMLNode* node); 104 BOOL importXML(LLXMLNode* node);
105 105
106 LLSD packMessage() const;
107 void unpackMessage(LLSD sales);
108
106 // message serialization 109 // message serialization
107 void packMessage(LLMessageSystem* msg) const; 110 void packMessage(LLMessageSystem* msg) const;
108 void unpackMessage(LLMessageSystem* msg, const char* block); 111 void unpackMessage(LLMessageSystem* msg, const char* block);