diff options
Diffstat (limited to 'indra/newview/llpathfindingnavmeshzone.h')
-rw-r--r-- | indra/newview/llpathfindingnavmeshzone.h | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index 7b6583a663..7f83e9d37b 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -31,6 +31,7 @@ #include "llsd.h"
#include "lluuid.h"
#include "llpathfindingnavmesh.h"
+#include "llpathfindingnavmeshstatus.h"
#include <vector>
@@ -38,6 +39,8 @@ #include <boost/function.hpp>
#include <boost/signals2.hpp>
+class LLPathfindingNavMeshStatus;
+
//#define XXX_STINSON_DEBUG_NAVMESH_ZONE
class LLPathfindingNavMeshZone
@@ -53,9 +56,18 @@ public: kNavMeshZoneRequestError
} ENavMeshZoneRequestStatus;
+ typedef enum {
+ kNavMeshZonePending,
+ kNavMeshZoneBuilding,
+ kNavMeshZoneSomePending,
+ kNavMeshZoneSomeBuilding,
+ kNavMeshZonePendingAndBuilding,
+ kNavMeshZoneComplete
+ } ENavMeshZoneStatus;
+
typedef boost::function<void (ENavMeshZoneRequestStatus)> navmesh_zone_callback_t;
typedef boost::signals2::signal<void (ENavMeshZoneRequestStatus)> navmesh_zone_signal_t;
- typedef boost::signals2::connection navmesh_zone_slot_t;
+ typedef boost::signals2::connection navmesh_zone_slot_t;
LLPathfindingNavMeshZone();
virtual ~LLPathfindingNavMeshZone();
@@ -67,6 +79,8 @@ public: void disable();
void refresh();
+ ENavMeshZoneStatus getNavMeshZoneStatus() const;
+
protected:
private:
@@ -82,6 +96,7 @@ private: void disable();
LLPathfindingNavMesh::ENavMeshRequestStatus getRequestStatus() const;
+ LLPathfindingNavMeshStatus::ENavMeshStatus getNavMeshStatus() const;
#ifdef XXX_STINSON_DEBUG_NAVMESH_ZONE
const LLUUID &getRegionUUID() const {return mRegionUUID;};
S32 getDirection() const {return mDirection;};
@@ -90,7 +105,7 @@ private: protected:
private:
- void handleNavMesh(LLPathfindingNavMesh::ENavMeshRequestStatus pNavMeshRequestStatus, const LLUUID &pRegionUUID, U32 pNavMeshVersion, const LLSD::Binary &pNavMeshData);
+ void handleNavMesh(LLPathfindingNavMesh::ENavMeshRequestStatus pNavMeshRequestStatus, const LLPathfindingNavMeshStatus &pNavMeshStatus, const LLSD::Binary &pNavMeshData);
void clear();
LLViewerRegion *getRegion() const;
@@ -99,6 +114,7 @@ private: LLUUID mRegionUUID;
bool mHasNavMesh;
U32 mNavMeshVersion;
+ LLPathfindingNavMeshStatus::ENavMeshStatus mNavMeshStatus;
navmesh_location_callback_t mLocationCallback;
LLPathfindingNavMesh::ENavMeshRequestStatus mRequestStatus;
LLPathfindingNavMesh::navmesh_slot_t mNavMeshSlot;
@@ -110,8 +126,9 @@ private: void handleNavMeshLocation();
void updateStatus();
- NavMeshLocationPtrs mNavMeshLocationPtrs;
- navmesh_zone_signal_t mNavMeshZoneSignal;
+ NavMeshLocationPtrs mNavMeshLocationPtrs;
+ ENavMeshZoneRequestStatus mNavMeshZoneRequestStatus;
+ navmesh_zone_signal_t mNavMeshZoneSignal;
};
#endif // LL_LLPATHFINDINGNAVMESHZONE_H
|