diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/newview/llselectmgr.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/linden/indra/newview/llselectmgr.cpp b/linden/indra/newview/llselectmgr.cpp index 0fa8285..44ac8fd 100644 --- a/linden/indra/newview/llselectmgr.cpp +++ b/linden/indra/newview/llselectmgr.cpp | |||
@@ -65,6 +65,7 @@ | |||
65 | #include "llinventorymodel.h" | 65 | #include "llinventorymodel.h" |
66 | #include "llmenugl.h" | 66 | #include "llmenugl.h" |
67 | #include "llmutelist.h" | 67 | #include "llmutelist.h" |
68 | #include "llparcel.h" // RezWithLandGroup | ||
68 | #include "llstatusbar.h" | 69 | #include "llstatusbar.h" |
69 | #include "llsurface.h" | 70 | #include "llsurface.h" |
70 | #include "lltool.h" | 71 | #include "lltool.h" |
@@ -80,6 +81,7 @@ | |||
80 | #include "llviewermenu.h" | 81 | #include "llviewermenu.h" |
81 | #include "llviewerobject.h" | 82 | #include "llviewerobject.h" |
82 | #include "llviewerobjectlist.h" | 83 | #include "llviewerobjectlist.h" |
84 | #include "llviewerparcelmgr.h" // RezWithLandGroup | ||
83 | #include "llviewerregion.h" | 85 | #include "llviewerregion.h" |
84 | #include "llviewerstats.h" | 86 | #include "llviewerstats.h" |
85 | #include "llvoavatar.h" | 87 | #include "llvoavatar.h" |
@@ -3138,7 +3140,20 @@ void LLSelectMgr::packDuplicateOnRayHead(void *user_data) | |||
3138 | msg->nextBlockFast(_PREHASH_AgentData); | 3140 | msg->nextBlockFast(_PREHASH_AgentData); |
3139 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() ); | 3141 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() ); |
3140 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() ); | 3142 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() ); |
3141 | msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID() ); | 3143 | LLUUID group_id = gAgent.getGroupID(); |
3144 | if (gSavedSettings.getBOOL("RezWithLandGroup")) | ||
3145 | { | ||
3146 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | ||
3147 | if (gAgent.isInGroup(parcel->getGroupID())) | ||
3148 | { | ||
3149 | group_id = parcel->getGroupID(); | ||
3150 | } | ||
3151 | else if (gAgent.isInGroup(parcel->getOwnerID())) | ||
3152 | { | ||
3153 | group_id = parcel->getOwnerID(); | ||
3154 | } | ||
3155 | } | ||
3156 | msg->addUUIDFast(_PREHASH_GroupID, group_id); | ||
3142 | msg->addVector3Fast(_PREHASH_RayStart, data->mRayStartRegion ); | 3157 | msg->addVector3Fast(_PREHASH_RayStart, data->mRayStartRegion ); |
3143 | msg->addVector3Fast(_PREHASH_RayEnd, data->mRayEndRegion ); | 3158 | msg->addVector3Fast(_PREHASH_RayEnd, data->mRayEndRegion ); |
3144 | msg->addBOOLFast(_PREHASH_BypassRaycast, data->mBypassRaycast ); | 3159 | msg->addBOOLFast(_PREHASH_BypassRaycast, data->mBypassRaycast ); |
@@ -3910,6 +3925,18 @@ void LLSelectMgr::packAgentAndSessionAndGroupID(void* user_data) | |||
3910 | void LLSelectMgr::packDuplicateHeader(void* data) | 3925 | void LLSelectMgr::packDuplicateHeader(void* data) |
3911 | { | 3926 | { |
3912 | LLUUID group_id(gAgent.getGroupID()); | 3927 | LLUUID group_id(gAgent.getGroupID()); |
3928 | if (gSavedSettings.getBOOL("RezWithLandGroup")) | ||
3929 | { | ||
3930 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | ||
3931 | if (gAgent.isInGroup(parcel->getGroupID())) | ||
3932 | { | ||
3933 | group_id = parcel->getGroupID(); | ||
3934 | } | ||
3935 | else if (gAgent.isInGroup(parcel->getOwnerID())) | ||
3936 | { | ||
3937 | group_id = parcel->getOwnerID(); | ||
3938 | } | ||
3939 | } | ||
3913 | packAgentAndSessionAndGroupID(&group_id); | 3940 | packAgentAndSessionAndGroupID(&group_id); |
3914 | 3941 | ||
3915 | LLDuplicateData* dup_data = (LLDuplicateData*) data; | 3942 | LLDuplicateData* dup_data = (LLDuplicateData*) data; |