merge
commit
1b7bd5e2d0
|
|
@ -30,7 +30,7 @@
|
|||
const S32 LL_VERSION_MAJOR = 2;
|
||||
const S32 LL_VERSION_MINOR = 1;
|
||||
const S32 LL_VERSION_PATCH = 0;
|
||||
const S32 LL_VERSION_BUILD = 211776;
|
||||
const S32 LL_VERSION_BUILD = 13828;
|
||||
|
||||
const char * const LL_CHANNEL = "Second Life Server";
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
const S32 LL_VERSION_MAJOR = 2;
|
||||
const S32 LL_VERSION_MINOR = 6;
|
||||
const S32 LL_VERSION_PATCH = 0;
|
||||
const S32 LL_VERSION_BUILD = 211776;
|
||||
const S32 LL_VERSION_BUILD = 0;
|
||||
|
||||
const char * const LL_CHANNEL = "Second Life Developer";
|
||||
|
||||
|
|
|
|||
|
|
@ -103,7 +103,6 @@ LLBBox LLBBox::getAxisAligned() const
|
|||
return aligned;
|
||||
}
|
||||
|
||||
|
||||
void LLBBox::expand( F32 delta )
|
||||
{
|
||||
mMinLocal.mV[VX] -= delta;
|
||||
|
|
|
|||
|
|
@ -83,8 +83,7 @@ public:
|
|||
LLVector3 agentToLocalBasis(const LLVector3& v) const;
|
||||
|
||||
// Get the smallest possible axis aligned bbox that contains this bbox
|
||||
LLBBox getAxisAligned() const;
|
||||
|
||||
LLBBox getAxisAligned() const;
|
||||
|
||||
// friend LLBBox operator*(const LLBBox& a, const LLMatrix4& b);
|
||||
|
||||
|
|
|
|||
|
|
@ -85,7 +85,6 @@ const U32 REGION_FLAGS_ALLOW_PARCEL_CHANGES = (1 << 26);
|
|||
|
||||
// Deprecated. Phoeinx 2009-12-11
|
||||
// REGION_FLAGS_ABUSE_EMAIL_TO_ESTATE_OWNER is unused beyond viewer-1.23
|
||||
// but we leave uncommented because viewer-1.23 still uses it
|
||||
//const U32 REGION_FLAGS_ABUSE_EMAIL_TO_ESTATE_OWNER = (1 << 27);
|
||||
|
||||
const U32 REGION_FLAGS_ALLOW_VOICE = (1 << 28);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,6 @@
|
|||
|
||||
CFBundleName = "Second Life";
|
||||
|
||||
CFBundleShortVersionString = "Second Life version 2.4.0.211776";
|
||||
CFBundleGetInfoString = "Second Life version 2.4.0.211776, Copyright 2004-2010 Linden Research, Inc.";
|
||||
CFBundleShortVersionString = "Second Life version 2.1.1.0";
|
||||
CFBundleGetInfoString = "Second Life version 2.1.1.0, Copyright 2004-2010 Linden Research, Inc.";
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.4.0.211776</string>
|
||||
<string>2.1.1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
|
|
|||
|
|
@ -518,10 +518,21 @@ void LLViewerObject::setNameValueList(const std::string& name_value_list)
|
|||
// agent.
|
||||
bool LLViewerObject::isReturnable()
|
||||
{
|
||||
LLBBox box_in_region_frame(getPositionRegion(), getRotationRegion(), getScale() * -0.5f, getScale() * 0.5f);
|
||||
return !isAttachment()
|
||||
&& mRegionp
|
||||
&& mRegionp->objectIsReturnable(getPositionRegion(), box_in_region_frame);
|
||||
if (isAttachment())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
std::vector<LLBBox> boxes;
|
||||
boxes.push_back(LLBBox(getPositionRegion(), getRotationRegion(), getScale() * -0.5f, getScale() * 0.5f).getAxisAligned());
|
||||
for (child_list_t::iterator iter = mChildList.begin();
|
||||
iter != mChildList.end(); iter++)
|
||||
{
|
||||
LLViewerObject* child = *iter;
|
||||
boxes.push_back(LLBBox(child->getPositionRegion(), child->getRotationRegion(), child->getScale() * -0.5f, child->getScale() * 0.5f).getAxisAligned());
|
||||
}
|
||||
|
||||
return mRegionp
|
||||
&& mRegionp->objectIsReturnable(getPositionRegion(), boxes);
|
||||
}
|
||||
|
||||
BOOL LLViewerObject::setParent(LLViewerObject* parent)
|
||||
|
|
|
|||
|
|
@ -145,27 +145,28 @@ BOOL LLViewerParcelOverlay::isOwnedOther(const LLVector3& pos) const
|
|||
return (PARCEL_OWNED == overlay || PARCEL_FOR_SALE == overlay);
|
||||
}
|
||||
|
||||
bool LLViewerParcelOverlay::encroachesOwned(const LLBBox& bbox) const
|
||||
bool LLViewerParcelOverlay::encroachesOwned(const std::vector<LLBBox>& boxes) const
|
||||
{
|
||||
LLBBox bbox_aligned = bbox.getAxisAligned();
|
||||
|
||||
LLVector3 min = bbox_aligned.getMinAgent();
|
||||
LLVector3 max = bbox_aligned.getMaxAgent();
|
||||
// boxes are expected to already be axis aligned
|
||||
for (U32 i = 0; i < boxes.size(); ++i)
|
||||
{
|
||||
LLVector3 min = boxes[i].getMinAgent();
|
||||
LLVector3 max = boxes[i].getMaxAgent();
|
||||
|
||||
S32 left = S32(llclamp((min.mV[VX] / PARCEL_GRID_STEP_METERS), 0.f, REGION_WIDTH_METERS - 1));
|
||||
S32 right = S32(llclamp((max.mV[VX] / PARCEL_GRID_STEP_METERS), 0.f, REGION_WIDTH_METERS - 1));
|
||||
S32 top = S32(llclamp((min.mV[VY] / PARCEL_GRID_STEP_METERS), 0.f, REGION_WIDTH_METERS - 1));
|
||||
S32 bottom = S32(llclamp((max.mV[VY] / PARCEL_GRID_STEP_METERS), 0.f, REGION_WIDTH_METERS - 1));
|
||||
|
||||
S32 left = S32(llclamp((min.mV[VX] / PARCEL_GRID_STEP_METERS), 0.f, REGION_WIDTH_METERS - 1));
|
||||
S32 right = S32(llclamp((max.mV[VX] / PARCEL_GRID_STEP_METERS), 0.f, REGION_WIDTH_METERS - 1));
|
||||
S32 top = S32(llclamp((min.mV[VY] / PARCEL_GRID_STEP_METERS), 0.f, REGION_WIDTH_METERS - 1));
|
||||
S32 bottom = S32(llclamp((max.mV[VY] / PARCEL_GRID_STEP_METERS), 0.f, REGION_WIDTH_METERS - 1));
|
||||
|
||||
for (S32 row = top; row <= bottom; row++)
|
||||
for (S32 column = left; column <= right; column++)
|
||||
{
|
||||
U8 type = ownership(row, column);
|
||||
if (PARCEL_SELF == type
|
||||
|| PARCEL_GROUP == type )
|
||||
return true;
|
||||
}
|
||||
|
||||
for (S32 row = top; row <= bottom; row++)
|
||||
for (S32 column = left; column <= right; column++)
|
||||
{
|
||||
U8 type = ownership(row, column);
|
||||
if (PARCEL_SELF == type
|
||||
|| PARCEL_GROUP == type )
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,9 +57,9 @@ public:
|
|||
BOOL isOwnedOther(const LLVector3& pos) const;
|
||||
|
||||
// "encroaches" means the prim hangs over the parcel, but its center
|
||||
// might be in another parcel. for now, we simply test bounding boxes
|
||||
// which isn't perfect, but is close
|
||||
bool encroachesOwned(const LLBBox& bbox) const;
|
||||
// might be in another parcel. for now, we simply test axis aligned
|
||||
// bounding boxes which isn't perfect, but is close
|
||||
bool encroachesOwned(const std::vector<LLBBox>& boxes) const;
|
||||
|
||||
BOOL isSoundLocal(const LLVector3& pos) const;
|
||||
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ public:
|
|||
mRegion->showReleaseNotes();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
mRegion->setCapabilitiesReceived(true);
|
||||
|
||||
if (STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState())
|
||||
|
|
@ -1501,13 +1501,13 @@ LLSpatialPartition* LLViewerRegion::getSpatialPartition(U32 type)
|
|||
const U32 ALLOW_RETURN_ENCROACHING_OBJECT = REGION_FLAGS_ALLOW_RETURN_ENCROACHING_OBJECT
|
||||
| REGION_FLAGS_ALLOW_RETURN_ENCROACHING_ESTATE_OBJECT;
|
||||
|
||||
bool LLViewerRegion::objectIsReturnable(const LLVector3& pos, const LLBBox& bbox)
|
||||
bool LLViewerRegion::objectIsReturnable(const LLVector3& pos, const std::vector<LLBBox>& boxes) const
|
||||
{
|
||||
return (mParcelOverlay != NULL)
|
||||
&& (mParcelOverlay->isOwnedSelf(pos)
|
||||
|| mParcelOverlay->isOwnedGroup(pos)
|
||||
|| ((mRegionFlags & ALLOW_RETURN_ENCROACHING_OBJECT)
|
||||
&& mParcelOverlay->encroachesOwned(bbox)) );
|
||||
&& mParcelOverlay->encroachesOwned(boxes)) );
|
||||
}
|
||||
|
||||
void LLViewerRegion::showReleaseNotes()
|
||||
|
|
|
|||
|
|
@ -295,7 +295,7 @@ public:
|
|||
|
||||
LLSpatialPartition* getSpatialPartition(U32 type);
|
||||
|
||||
bool objectIsReturnable(const LLVector3& pos, const LLBBox& bbox);
|
||||
bool objectIsReturnable(const LLVector3& pos, const std::vector<LLBBox>& boxes) const;
|
||||
public:
|
||||
struct CompareDistance
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2106,31 +2106,6 @@ void LLVOAvatar::computeBodySize()
|
|||
gAgent.sendAgentSetAppearance();
|
||||
}
|
||||
}
|
||||
|
||||
/* debug spam
|
||||
std::cout << "skull = " << skull << std::endl; // adebug
|
||||
std::cout << "head = " << head << std::endl; // adebug
|
||||
std::cout << "head_scale = " << head_scale << std::endl; // adebug
|
||||
std::cout << "neck = " << neck << std::endl; // adebug
|
||||
std::cout << "neck_scale = " << neck_scale << std::endl; // adebug
|
||||
std::cout << "chest = " << chest << std::endl; // adebug
|
||||
std::cout << "chest_scale = " << chest_scale << std::endl; // adebug
|
||||
std::cout << "torso = " << torso << std::endl; // adebug
|
||||
std::cout << "torso_scale = " << torso_scale << std::endl; // adebug
|
||||
std::cout << std::endl; // adebug
|
||||
|
||||
std::cout << "pelvis_scale = " << pelvis_scale << std::endl;// adebug
|
||||
std::cout << std::endl; // adebug
|
||||
|
||||
std::cout << "hip = " << hip << std::endl; // adebug
|
||||
std::cout << "hip_scale = " << hip_scale << std::endl; // adebug
|
||||
std::cout << "ankle = " << ankle << std::endl; // adebug
|
||||
std::cout << "ankle_scale = " << ankle_scale << std::endl; // adebug
|
||||
std::cout << "foot = " << foot << std::endl; // adebug
|
||||
std::cout << "mBodySize = " << mBodySize << std::endl; // adebug
|
||||
std::cout << "mPelvisToFoot = " << mPelvisToFoot << std::endl; // adebug
|
||||
std::cout << std::endl; // adebug
|
||||
*/
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -129,8 +129,8 @@ TOOLSIT CURSOR "toolsit.cur"
|
|||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 2,4,0,211776
|
||||
PRODUCTVERSION 2,4,0,211776
|
||||
FILEVERSION 2,1,1,0
|
||||
PRODUCTVERSION 2,1,1,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
|
|
@ -147,12 +147,12 @@ BEGIN
|
|||
BEGIN
|
||||
VALUE "CompanyName", "Linden Lab"
|
||||
VALUE "FileDescription", "Second Life"
|
||||
VALUE "FileVersion", "2.4.0.211776"
|
||||
VALUE "FileVersion", "2.1.1.0"
|
||||
VALUE "InternalName", "Second Life"
|
||||
VALUE "LegalCopyright", "Copyright <20> 2001-2010, Linden Research, Inc."
|
||||
VALUE "OriginalFilename", "SecondLife.exe"
|
||||
VALUE "ProductName", "Second Life"
|
||||
VALUE "ProductVersion", "2.4.0.211776"
|
||||
VALUE "ProductVersion", "2.1.1.0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
|
|||
Loading…
Reference in New Issue