summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerparcelmgr.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewerparcelmgr.h')
-rw-r--r--indra/newview/llviewerparcelmgr.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/indra/newview/llviewerparcelmgr.h b/indra/newview/llviewerparcelmgr.h
index 9f762a186c..4bed1c0486 100644
--- a/indra/newview/llviewerparcelmgr.h
+++ b/indra/newview/llviewerparcelmgr.h
@@ -36,10 +36,14 @@
#include "v3dmath.h"
#include "lldarray.h"
#include "llframetimer.h"
-#include "llmemory.h"
+#include "llsingleton.h"
#include "llparcelselection.h"
#include "llui.h"
+#include <boost/function.hpp>
+#include <boost/signal.hpp>
+#include <boost/signals/connection.hpp>
+
class LLUUID;
class LLMessageSystem;
class LLParcel;
@@ -79,6 +83,9 @@ class LLViewerParcelMgr : public LLSingleton<LLViewerParcelMgr>
{
public:
+ typedef boost::function<void()> parcel_changed_callback_t;
+ typedef boost::signal <void()> parcel_changed_signal_t;
+
LLViewerParcelMgr();
~LLViewerParcelMgr();
@@ -163,7 +170,7 @@ public:
BOOL agentCanTakeDamage() const;
BOOL agentCanFly() const;
F32 agentDrawDistance() const;
- BOOL agentCanBuild() const;
+ bool agentCanBuild() const;
F32 getHoverParcelWidth() const
{ return F32(mHoverEastNorth.mdV[VX] - mHoverWestSouth.mdV[VX]); }
@@ -256,6 +263,12 @@ public:
// the agent is banned or not in the allowed group
BOOL isCollisionBanned();
+ boost::signals::connection setAgentParcelChangedCallback(parcel_changed_callback_t cb);
+ boost::signals::connection setTeleportFinishedCallback(parcel_changed_callback_t cb);
+ boost::signals::connection setTeleportFailedCallback(parcel_changed_callback_t cb);
+ void onTeleportFinished();
+ void onTeleportFailed();
+
static BOOL isParcelOwnedByAgent(const LLParcel* parcelp, U64 group_proxy_power);
static BOOL isParcelModifiableByAgent(const LLParcel* parcelp, U64 group_proxy_power);
@@ -303,6 +316,11 @@ private:
LLDynamicArray<LLParcelObserver*> mObservers;
+ BOOL mTeleportInProgress;
+ parcel_changed_signal_t mTeleportFinishedSignal;
+ parcel_changed_signal_t mTeleportFailedSignal;
+ parcel_changed_signal_t mAgentParcelChangedSignal;
+
// Array of pieces of parcel edges to potentially draw
// Has (parcels_per_edge + 1) * (parcels_per_edge + 1) elements so
// we can represent edges of the grid.