master
Andrew Meadows 2011-01-07 15:22:33 -08:00
commit 1b7bd5e2d0
14 changed files with 52 additions and 68 deletions

View File

@ -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";

View File

@ -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";

View File

@ -103,7 +103,6 @@ LLBBox LLBBox::getAxisAligned() const
return aligned;
}
void LLBBox::expand( F32 delta )
{
mMinLocal.mV[VX] -= delta;

View File

@ -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);

View File

@ -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);

View File

@ -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.";

View File

@ -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>

View File

@ -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)

View File

@ -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;
}

View File

@ -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;

View File

@ -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()

View File

@ -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
{

View File

@ -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
*/
}
//------------------------------------------------------------------------

View File

@ -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"