summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermessage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewermessage.cpp')
-rw-r--r--indra/newview/llviewermessage.cpp48
1 files changed, 32 insertions, 16 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index e7456f77bb..7421bba733 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -99,6 +99,7 @@
#include "llviewerobjectlist.h"
#include "llviewerparcelmgr.h"
#include "llviewerstats.h"
+#include "llviewerstatsrecorder.h"
#include "llviewertexteditor.h"
#include "llviewerthrottle.h"
#include "llviewerwindow.h"
@@ -3759,31 +3760,34 @@ void process_kill_object(LLMessageSystem *mesgsys, void **user_data)
continue;
}
- LLViewerObject *objectp = gObjectList.findObject(id);
- if (objectp)
+ LLViewerObject *objectp = gObjectList.findObject(id);
+ if (objectp)
+ {
+ // Display green bubble on kill
+ if ( gShowObjectUpdates )
{
- // Display green bubble on kill
- if ( gShowObjectUpdates )
- {
- LLColor4 color(0.f,1.f,0.f,1.f);
- gPipeline.addDebugBlip(objectp->getPositionAgent(), color);
- LL_DEBUGS("MessageBlip") << "Kill blip for local " << local_id << " at " << objectp->getPositionAgent() << LL_ENDL;
- }
-
- // Do the kill
- gObjectList.killObject(objectp);
+ LLColor4 color(0.f,1.f,0.f,1.f);
+ gPipeline.addDebugBlip(objectp->getPositionAgent(), color);
+ LL_DEBUGS("MessageBlip") << "Kill blip for local " << local_id << " at " << objectp->getPositionAgent() << LL_ENDL;
}
- if(delete_object)
- {
- regionp->killCacheEntry(local_id);
+ // Do the kill
+ gObjectList.killObject(objectp);
+ }
+
+ if(delete_object)
+ {
+ regionp->killCacheEntry(local_id);
}
// We should remove the object from selection after it is marked dead by gObjectList to make LLToolGrab,
// which is using the object, release the mouse capture correctly when the object dies.
// See LLToolGrab::handleHoverActive() and LLToolGrab::handleHoverNonPhysical().
LLSelectMgr::getInstance()->removeObjectFromSelections(id);
- }
+
+ } // end for loop
+
+ LLViewerStatsRecorder::instance().recordObjectKills(num_objects);
}
void process_time_synch(LLMessageSystem *mesgsys, void **user_data)
@@ -5151,6 +5155,11 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem)
LandBuyAccessBlocked_AdultsOnlyContent
-----------------------------------------------------------------------*/
+ static LLCachedControl<S32> ban_lines_mode(gSavedSettings , "ShowBanLines" , LLViewerParcelMgr::PARCEL_BAN_LINES_ON_COLLISION);
+ if (ban_lines_mode == LLViewerParcelMgr::PARCEL_BAN_LINES_ON_COLLISION)
+ {
+ LLViewerParcelMgr::getInstance()->resetCollisionTimer();
+ }
if (handle_special_notification(notificationID, llsdBlock))
{
return true;
@@ -5319,6 +5328,13 @@ void process_alert_message(LLMessageSystem *msgsystem, void **user_data)
{
BOOL modal = FALSE;
process_alert_core(message, modal);
+
+ static LLCachedControl<S32> ban_lines_mode(gSavedSettings , "ShowBanLines" , LLViewerParcelMgr::PARCEL_BAN_LINES_ON_COLLISION);
+ if (ban_lines_mode == LLViewerParcelMgr::PARCEL_BAN_LINES_ON_COLLISION
+ && message.find("Cannot enter parcel") != std::string::npos)
+ {
+ LLViewerParcelMgr::getInstance()->resetCollisionTimer();
+ }
}
}