diff options
Diffstat (limited to 'linden/indra')
-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 83abcf4..1634950 100644 --- a/linden/indra/newview/llselectmgr.cpp +++ b/linden/indra/newview/llselectmgr.cpp | |||
@@ -64,6 +64,7 @@ | |||
64 | #include "llinventorymodel.h" | 64 | #include "llinventorymodel.h" |
65 | #include "llmenugl.h" | 65 | #include "llmenugl.h" |
66 | #include "llmutelist.h" | 66 | #include "llmutelist.h" |
67 | #include "llparcel.h" // RezWithLandGroup | ||
67 | #include "llstatusbar.h" | 68 | #include "llstatusbar.h" |
68 | #include "llsurface.h" | 69 | #include "llsurface.h" |
69 | #include "lltool.h" | 70 | #include "lltool.h" |
@@ -77,6 +78,7 @@ | |||
77 | #include "llviewermenu.h" | 78 | #include "llviewermenu.h" |
78 | #include "llviewerobject.h" | 79 | #include "llviewerobject.h" |
79 | #include "llviewerobjectlist.h" | 80 | #include "llviewerobjectlist.h" |
81 | #include "llviewerparcelmgr.h" // RezWithLandGroup | ||
80 | #include "llviewerregion.h" | 82 | #include "llviewerregion.h" |
81 | #include "llviewerstats.h" | 83 | #include "llviewerstats.h" |
82 | #include "llvoavatar.h" | 84 | #include "llvoavatar.h" |
@@ -3135,7 +3137,20 @@ void LLSelectMgr::packDuplicateOnRayHead(void *user_data) | |||
3135 | msg->nextBlockFast(_PREHASH_AgentData); | 3137 | msg->nextBlockFast(_PREHASH_AgentData); |
3136 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() ); | 3138 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() ); |
3137 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() ); | 3139 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() ); |
3138 | msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID() ); | 3140 | LLUUID group_id = gAgent.getGroupID(); |
3141 | if (gSavedSettings.getBOOL("RezWithLandGroup")) | ||
3142 | { | ||
3143 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | ||
3144 | if (gAgent.isInGroup(parcel->getGroupID())) | ||
3145 | { | ||
3146 | group_id = parcel->getGroupID(); | ||
3147 | } | ||
3148 | else if (gAgent.isInGroup(parcel->getOwnerID())) | ||
3149 | { | ||
3150 | group_id = parcel->getOwnerID(); | ||
3151 | } | ||
3152 | } | ||
3153 | msg->addUUIDFast(_PREHASH_GroupID, group_id); | ||
3139 | msg->addVector3Fast(_PREHASH_RayStart, data->mRayStartRegion ); | 3154 | msg->addVector3Fast(_PREHASH_RayStart, data->mRayStartRegion ); |
3140 | msg->addVector3Fast(_PREHASH_RayEnd, data->mRayEndRegion ); | 3155 | msg->addVector3Fast(_PREHASH_RayEnd, data->mRayEndRegion ); |
3141 | msg->addBOOLFast(_PREHASH_BypassRaycast, data->mBypassRaycast ); | 3156 | msg->addBOOLFast(_PREHASH_BypassRaycast, data->mBypassRaycast ); |
@@ -3907,6 +3922,18 @@ void LLSelectMgr::packAgentAndSessionAndGroupID(void* user_data) | |||
3907 | void LLSelectMgr::packDuplicateHeader(void* data) | 3922 | void LLSelectMgr::packDuplicateHeader(void* data) |
3908 | { | 3923 | { |
3909 | LLUUID group_id(gAgent.getGroupID()); | 3924 | LLUUID group_id(gAgent.getGroupID()); |
3925 | if (gSavedSettings.getBOOL("RezWithLandGroup")) | ||
3926 | { | ||
3927 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | ||
3928 | if (gAgent.isInGroup(parcel->getGroupID())) | ||
3929 | { | ||
3930 | group_id = parcel->getGroupID(); | ||
3931 | } | ||
3932 | else if (gAgent.isInGroup(parcel->getOwnerID())) | ||
3933 | { | ||
3934 | group_id = parcel->getOwnerID(); | ||
3935 | } | ||
3936 | } | ||
3910 | packAgentAndSessionAndGroupID(&group_id); | 3937 | packAgentAndSessionAndGroupID(&group_id); |
3911 | 3938 | ||
3912 | LLDuplicateData* dup_data = (LLDuplicateData*) data; | 3939 | LLDuplicateData* dup_data = (LLDuplicateData*) data; |