diff options
Diffstat (limited to 'linden/indra/newview/lltoolplacer.cpp')
-rw-r--r-- | linden/indra/newview/lltoolplacer.cpp | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/linden/indra/newview/lltoolplacer.cpp b/linden/indra/newview/lltoolplacer.cpp index 84e0203..18793c5 100644 --- a/linden/indra/newview/lltoolplacer.cpp +++ b/linden/indra/newview/lltoolplacer.cpp | |||
@@ -65,6 +65,9 @@ | |||
65 | #include "llviewercamera.h" | 65 | #include "llviewercamera.h" |
66 | #include "llviewerstats.h" | 66 | #include "llviewerstats.h" |
67 | 67 | ||
68 | #include "llparcel.h" // RezWithLandGroup | ||
69 | #include "llviewerparcelmgr.h" // RezWithLandGroup | ||
70 | |||
68 | const LLVector3 DEFAULT_OBJECT_SCALE(0.5f, 0.5f, 0.5f); | 71 | const LLVector3 DEFAULT_OBJECT_SCALE(0.5f, 0.5f, 0.5f); |
69 | 72 | ||
70 | //static | 73 | //static |
@@ -213,8 +216,22 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics ) | |||
213 | 216 | ||
214 | // Set params for new object based on its PCode. | 217 | // Set params for new object based on its PCode. |
215 | LLQuaternion rotation; | 218 | LLQuaternion rotation; |
216 | LLVector3 scale = DEFAULT_OBJECT_SCALE; | 219 | LLVector3 scale = LLVector3( |
220 | gSavedPerAccountSettings.getF32("BuildPrefs_Xsize"), | ||
221 | gSavedPerAccountSettings.getF32("BuildPrefs_Ysize"), | ||
222 | gSavedPerAccountSettings.getF32("BuildPrefs_Zsize")); | ||
223 | |||
217 | U8 material = LL_MCODE_WOOD; | 224 | U8 material = LL_MCODE_WOOD; |
225 | if(gSavedPerAccountSettings.getString("BuildPrefs_Material")== "Stone") material = LL_MCODE_STONE; | ||
226 | if(gSavedPerAccountSettings.getString("BuildPrefs_Material")== "Metal") material = LL_MCODE_METAL; | ||
227 | if(gSavedPerAccountSettings.getString("BuildPrefs_Material")== "Wood") material = LL_MCODE_WOOD; | ||
228 | if(gSavedPerAccountSettings.getString("BuildPrefs_Material")== "Flesh") material = LL_MCODE_FLESH; | ||
229 | if(gSavedPerAccountSettings.getString("BuildPrefs_Material")== "Rubber") material = LL_MCODE_RUBBER; | ||
230 | if(gSavedPerAccountSettings.getString("BuildPrefs_Material")== "Plastic") material = LL_MCODE_PLASTIC; | ||
231 | |||
232 | |||
233 | |||
234 | |||
218 | BOOL create_selected = FALSE; | 235 | BOOL create_selected = FALSE; |
219 | LLVolumeParams volume_params; | 236 | LLVolumeParams volume_params; |
220 | 237 | ||
@@ -255,12 +272,33 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics ) | |||
255 | gMessageSystem->nextBlockFast(_PREHASH_AgentData); | 272 | gMessageSystem->nextBlockFast(_PREHASH_AgentData); |
256 | gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 273 | gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); |
257 | gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | 274 | gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); |
258 | gMessageSystem->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID()); | 275 | // RezWithLandGroup 2009-05, If avatar is in land group/land owner group, |
276 | // it rezzes it with it to prevent autoreturn/whatever | ||
277 | if ( gSavedSettings.getBOOL("RezWithLandGroup") ) | ||
278 | { | ||
279 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | ||
280 | if ( gAgent.isInGroup(parcel->getGroupID()) ) | ||
281 | { | ||
282 | gMessageSystem->addUUIDFast(_PREHASH_GroupID, parcel->getGroupID()); | ||
283 | } | ||
284 | else if ( gAgent.isInGroup(parcel->getOwnerID()) ) | ||
285 | { | ||
286 | gMessageSystem->addUUIDFast(_PREHASH_GroupID, parcel->getOwnerID()); | ||
287 | } | ||
288 | else | ||
289 | { | ||
290 | gMessageSystem->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID()); | ||
291 | } | ||
292 | } | ||
293 | else | ||
294 | { | ||
295 | gMessageSystem->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID()); | ||
296 | } | ||
259 | gMessageSystem->nextBlockFast(_PREHASH_ObjectData); | 297 | gMessageSystem->nextBlockFast(_PREHASH_ObjectData); |
260 | gMessageSystem->addU8Fast(_PREHASH_Material, material); | 298 | gMessageSystem->addU8Fast(_PREHASH_Material, material); |
261 | 299 | ||
262 | U32 flags = 0; // not selected | 300 | U32 flags = 0; // not selected |
263 | if (use_physics) | 301 | if (use_physics || gSavedPerAccountSettings.getBOOL("BuildPrefs_Physical")) |
264 | { | 302 | { |
265 | flags |= FLAGS_USE_PHYSICS; | 303 | flags |= FLAGS_USE_PHYSICS; |
266 | } | 304 | } |