diff options
Diffstat (limited to 'indra/newview/llviewerparcelmgr.h')
-rw-r--r-- | indra/newview/llviewerparcelmgr.h | 22 |
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. |