diff options
author | Todd Stinson <stinson@lindenlab.com> | 2012-03-13 11:59:44 -0700 |
---|---|---|
committer | Todd Stinson <stinson@lindenlab.com> | 2012-03-13 11:59:44 -0700 |
commit | 66374e4d656ae07d4dddc010e6239267ffe94b05 (patch) | |
tree | ffed74394aef9d4b97d91e278a72c5ca2347d973 | |
parent | f1109baffa7619750807a9e9d23e47c7f1d8f77a (diff) |
PATH-304: Proper handling of the sim-to-viewer message.
-rw-r--r-- | indra/newview/llpathfindingmanager.cpp | 12 | ||||
-rw-r--r-- | indra/newview/llpathfindingnavmeshstatus.cpp | 27 |
2 files changed, 30 insertions, 9 deletions
diff --git a/indra/newview/llpathfindingmanager.cpp b/indra/newview/llpathfindingmanager.cpp index f3b9bc4b8a..251e330914 100644 --- a/indra/newview/llpathfindingmanager.cpp +++ b/indra/newview/llpathfindingmanager.cpp @@ -41,6 +41,7 @@ #include "llpathfindinglinkset.h"
#include "llpathfindinglinksetlist.h"
#include "llhttpnode.h"
+//#include "llpathfindingnavmeshzone.h" // XXX
#include <boost/function.hpp>
#include <boost/signals2.hpp>
@@ -57,6 +58,7 @@ #define CAP_SERVICE_TERRAIN_LINKSETS "TerrainNavMeshProperties"
#define SIM_MESSAGE_NAVMESH_STATUS_UPDATE "/message/NavMeshStatusUpdate"
+#define SIM_MESSAGE_BODY_FIELD "body"
//---------------------------------------------------------------------------
// LLNavMeshSimStateChangeNode
@@ -628,10 +630,12 @@ LLViewerRegion *LLPathfindingManager::getCurrentRegion() const void LLNavMeshSimStateChangeNode::post(ResponsePtr pResponse, const LLSD &pContext, const LLSD &pInput) const
{
#ifdef XXX_STINSON_DEBUG_NAVMESH_ZONE
- llinfos << "Received NavMeshStatusUpdate: " << pContext << llendl;
+ llinfos << "STINSON DEBUG: Received NavMeshStatusUpdate: " << pInput << llendl;
#endif // XXX_STINSON_DEBUG_NAVMESH_ZONE
- LLPathfindingNavMeshStatus navMeshStatus(pContext);
- LLPathfindingManager::getInstance()->handleNavMeshStatusUpdate(pContext);
+ llassert(pInput.has(SIM_MESSAGE_BODY_FIELD));
+ llassert(pInput.get(SIM_MESSAGE_BODY_FIELD).isMap());
+ LLPathfindingNavMeshStatus navMeshStatus(pInput.get(SIM_MESSAGE_BODY_FIELD));
+ LLPathfindingManager::getInstance()->handleNavMeshStatusUpdate(navMeshStatus);
}
//---------------------------------------------------------------------------
@@ -656,7 +660,7 @@ NavMeshStatusResponder::~NavMeshStatusResponder() void NavMeshStatusResponder::result(const LLSD &pContent)
{
#ifdef XXX_STINSON_DEBUG_NAVMESH_ZONE
- llinfos << "Received requested NavMeshStatus: " << pContent << llendl;
+ llinfos << "STINSON DEBUG: Received requested NavMeshStatus: " << pContent << llendl;
#endif // XXX_STINSON_DEBUG_NAVMESH_ZONE
LLPathfindingNavMeshStatus navMeshStatus(mRegionUUID, pContent);
LLPathfindingManager::getInstance()->handleNavMeshStatusRequest(navMeshStatus, mRegion);
diff --git a/indra/newview/llpathfindingnavmeshstatus.cpp b/indra/newview/llpathfindingnavmeshstatus.cpp index 67be0459a5..2ef892c8cd 100644 --- a/indra/newview/llpathfindingnavmeshstatus.cpp +++ b/indra/newview/llpathfindingnavmeshstatus.cpp @@ -33,8 +33,9 @@ #include <string>
-#define REGION_FIELD "region"
-#define STATE_FIELD "state"
+#define REGION_FIELD "region_id"
+#define DEPRECATED_STATE_FIELD "state"
+#define STATUS_FIELD "status"
#define VERSION_FIELD "version"
const std::string LLPathfindingNavMeshStatus::sStatusPending("pending");
@@ -106,9 +107,25 @@ void LLPathfindingNavMeshStatus::parseStatus(const LLSD &pContent) llassert(pContent.get(VERSION_FIELD).asInteger() >= 0);
mVersion = static_cast<U32>(pContent.get(VERSION_FIELD).asInteger());
- llassert(pContent.has(STATE_FIELD));
- llassert(pContent.get(STATE_FIELD).isString());
- std::string status = pContent.get(STATE_FIELD).asString();
+#ifdef DEPRECATED_STATE_FIELD
+ std::string status;
+ if (pContent.has(DEPRECATED_STATE_FIELD))
+ {
+ llassert(pContent.has(DEPRECATED_STATE_FIELD));
+ llassert(pContent.get(DEPRECATED_STATE_FIELD).isString());
+ status = pContent.get(DEPRECATED_STATE_FIELD).asString();
+ }
+ else
+ {
+ llassert(pContent.has(STATUS_FIELD));
+ llassert(pContent.get(STATUS_FIELD).isString());
+ status = pContent.get(STATUS_FIELD).asString();
+ }
+#else // DEPRECATED_STATE_FIELD
+ llassert(pContent.has(STATUS_FIELD));
+ llassert(pContent.get(STATUS_FIELD).isString());
+ std::string status = pContent.get(STATUS_FIELD).asString();
+#endif // DEPRECATED_STATE_FIELD
if (LLStringUtil::compareStrings(status, sStatusPending))
{
|