diff options
Diffstat (limited to 'indra/newview/llviewerparcelmgr.h')
-rw-r--r-- | indra/newview/llviewerparcelmgr.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/indra/newview/llviewerparcelmgr.h b/indra/newview/llviewerparcelmgr.h index 9f762a186c..dc6c2a6287 100644 --- a/indra/newview/llviewerparcelmgr.h +++ b/indra/newview/llviewerparcelmgr.h @@ -36,10 +36,13 @@ #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/signals2.hpp> + class LLUUID; class LLMessageSystem; class LLParcel; @@ -79,6 +82,9 @@ class LLViewerParcelMgr : public LLSingleton<LLViewerParcelMgr> { public: + typedef boost::function<void()> parcel_changed_callback_t; + typedef boost::signals2::signal<void()> parcel_changed_signal_t; + LLViewerParcelMgr(); ~LLViewerParcelMgr(); @@ -163,7 +169,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 +262,12 @@ public: // the agent is banned or not in the allowed group BOOL isCollisionBanned(); + boost::signals2::connection setAgentParcelChangedCallback(parcel_changed_callback_t cb); + boost::signals2::connection setTeleportFinishedCallback(parcel_changed_callback_t cb); + boost::signals2::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 +315,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. |