Compare commits
6 Commits
sv-1.8.7.8
...
sv-1.8.7.8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f24a53a01 | ||
|
|
28af96229b | ||
|
|
6d776632a9 | ||
|
|
1853500e10 | ||
|
|
8e01fcb7f0 | ||
|
|
af8f0e1155 |
@@ -549,7 +549,7 @@ public:
|
||||
const item_list_t& getItems() const { return mItems; }
|
||||
|
||||
// number of menu items
|
||||
item_list_t::size_type LLMenuGL::getItemCount() const { return mItems.size(); }
|
||||
item_list_t::size_type getItemCount() const { return mItems.size(); }
|
||||
|
||||
void setItemLastSelected(LLMenuItemGL* item); // must be in menu
|
||||
LLMenuItemGL* getItem(S32 number); // 0 = first item
|
||||
|
||||
@@ -381,6 +381,7 @@ LLAgent::LLAgent() :
|
||||
|
||||
mAgentAccess(new LLAgentAccess(gSavedSettings)),
|
||||
mGodLevelChangeSignal(),
|
||||
mIsCrossingRegion(false),
|
||||
mCanEditParcel(false),
|
||||
mTeleportSourceSLURL(new LLSLURL),
|
||||
mTeleportRequest(),
|
||||
@@ -4431,6 +4432,7 @@ void LLAgent::setTeleportState(ETeleportState state)
|
||||
{
|
||||
case TELEPORT_NONE:
|
||||
mbTeleportKeepsLookAt = false;
|
||||
mIsCrossingRegion = false; // Attachments getting lost on TP; finished TP
|
||||
break;
|
||||
|
||||
case TELEPORT_MOVING:
|
||||
|
||||
@@ -739,6 +739,13 @@ private:
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Attachments getting lost on TP
|
||||
public:
|
||||
void setIsCrossingRegion(bool is_crossing) { mIsCrossingRegion = is_crossing; }
|
||||
bool isCrossingRegion() const { return mIsCrossingRegion; }
|
||||
private:
|
||||
bool mIsCrossingRegion;
|
||||
|
||||
// Build
|
||||
public:
|
||||
bool canEditParcel() const { return mCanEditParcel; }
|
||||
|
||||
@@ -2841,6 +2841,12 @@ void LLAppearanceMgr::wearInventoryCategory(LLInventoryCategory* category, bool
|
||||
{
|
||||
if(!category) return;
|
||||
|
||||
// Attachments getting lost on TP:
|
||||
// We'll be sending the outfit change request to our current region,
|
||||
// so we'll learn them if they've been sending bad kills.
|
||||
// We don't take kindly to that sorta behaviour round these parts.
|
||||
gAgent.setIsCrossingRegion(false);
|
||||
|
||||
selfClearPhases();
|
||||
selfStartPhase("wear_inventory_category");
|
||||
|
||||
|
||||
@@ -600,12 +600,12 @@ void LLFloaterTools::refresh()
|
||||
S32 index = 1;
|
||||
for (const auto& child : children)
|
||||
{
|
||||
++index;
|
||||
if (child->isSelected())
|
||||
{
|
||||
LLResMgr::getInstance()->getIntegerString(value_string, index);
|
||||
break;
|
||||
}
|
||||
++index;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1712,7 +1712,7 @@ void LLPanelObjectInventory::updateInventory()
|
||||
// We're still interested in this task's inventory.
|
||||
uuid_set_t selected_items;
|
||||
BOOL inventory_has_focus = FALSE;
|
||||
if (mHaveInventory)
|
||||
if (mHaveInventory && mFolders)
|
||||
{
|
||||
selected_items = mFolders->getSelectionList();
|
||||
inventory_has_focus = gFocusMgr.childHasKeyboardFocus(mFolders);
|
||||
|
||||
@@ -8564,6 +8564,7 @@ void handle_rebake_textures(void*)
|
||||
{
|
||||
LLAppearanceMgr::instance().requestServerAppearanceUpdate();
|
||||
}
|
||||
gAgent.setIsCrossingRegion(false); // Attachments getting lost on TP
|
||||
}
|
||||
|
||||
void toggle_visibility(void* user_data)
|
||||
|
||||
@@ -4904,6 +4904,8 @@ void process_crossed_region(LLMessageSystem* msg, void**)
|
||||
}
|
||||
LL_INFOS("Messaging") << "process_crossed_region()" << LL_ENDL;
|
||||
gAgentAvatarp->resetRegionCrossingTimer();
|
||||
gAgent.setIsCrossingRegion(false); // Attachments getting lost on TP, region crossing hook
|
||||
|
||||
|
||||
U32 sim_ip;
|
||||
msg->getIPAddrFast(_PREHASH_RegionData, _PREHASH_SimIP, sim_ip);
|
||||
@@ -5300,10 +5302,23 @@ void process_kill_object(LLMessageSystem *mesgsys, void **user_data)
|
||||
LLViewerObject *objectp = gObjectList.findObject(id);
|
||||
if (objectp)
|
||||
{
|
||||
if (different_region && gAgentAvatarp == objectp->getAvatar())
|
||||
if (gAgentAvatarp == objectp->getAvatar())
|
||||
{
|
||||
LL_WARNS() << "Region other than our own killing our attachments!!" << LL_ENDL;
|
||||
continue;
|
||||
if (different_region)
|
||||
{
|
||||
LL_WARNS() << "Region other than our own killing our attachments!!" << LL_ENDL;
|
||||
continue;
|
||||
}
|
||||
else if (gAgent.getTeleportState() != LLAgent::TELEPORT_NONE)
|
||||
{
|
||||
LL_WARNS() << "Region killing our attachments during teleport!!" << LL_ENDL;
|
||||
continue;
|
||||
}
|
||||
else if (gAgent.isCrossingRegion())
|
||||
{
|
||||
LL_WARNS() << "Region killing our attachments during region cross!!" << LL_ENDL;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// Display green bubble on kill
|
||||
if ( gShowObjectUpdates )
|
||||
@@ -6804,7 +6819,6 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem)
|
||||
|
||||
std::string llsdRaw;
|
||||
LLSD llsdBlock;
|
||||
msgsystem->getStringFast(_PREHASH_AlertInfo, _PREHASH_Message, notificationID);
|
||||
msgsystem->getStringFast(_PREHASH_AlertInfo, _PREHASH_ExtraParams, llsdRaw);
|
||||
if (llsdRaw.length())
|
||||
{
|
||||
@@ -6851,6 +6865,11 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (notificationID == "expired_region_handoff" || notificationID == "invalid_region_handoff") // borked region handoff
|
||||
{
|
||||
gAgent.setIsCrossingRegion(false); // Attachments getting lost on TP
|
||||
}
|
||||
else
|
||||
// HACK -- handle callbacks for specific alerts.
|
||||
if (notificationID == "HomePositionSet")
|
||||
{
|
||||
|
||||
@@ -869,6 +869,7 @@ void LLVOAvatarSelf::updateRegion(LLViewerRegion *regionp)
|
||||
}
|
||||
mRegionCrossingTimer.reset();
|
||||
LLViewerObject::updateRegion(regionp);
|
||||
gAgent.setIsCrossingRegion(false); // Attachments getting lost on TP
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user