summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Stinson <stinson@lindenlab.com>2012-01-23 18:27:10 -0800
committerTodd Stinson <stinson@lindenlab.com>2012-01-23 18:27:10 -0800
commit3b4d841ee254186d881490cfadbdfbac6dcdf6ad (patch)
tree6c9f5270613250d5939fb762b06c7c5509a9ab1c
parent3f330d2902aaab3c62ebd0c830fce61c6f1e4524 (diff)
Introducing a hacky way to get some reporting on the downloading status of the navmesh into the console. This needs to be seriously refactored.
-rw-r--r--indra/newview/llfloaterpathfindingconsole.cpp13
-rw-r--r--indra/newview/llfloaterpathfindingconsole.h3
-rw-r--r--indra/newview/llnavmeshstation.cpp6
-rw-r--r--indra/newview/llnavmeshstation.h8
-rw-r--r--indra/newview/skins/default/xui/en/floater_pathfinding_console.xml7
5 files changed, 32 insertions, 5 deletions
diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp
index 7b8ede410c..63b863937e 100644
--- a/indra/newview/llfloaterpathfindingconsole.cpp
+++ b/indra/newview/llfloaterpathfindingconsole.cpp
@@ -307,6 +307,18 @@ void LLFloaterPathfindingConsole::setTerrainMaterialD(F32 pTerrainMaterial)
mTerrainMaterialD->setValue(LLSD(pTerrainMaterial));
}
+void LLFloaterPathfindingConsole::setHasNavMeshReceived()
+{
+ std::string str = getString("navmesh_fetch_complete_available");
+ mPathfindingStatus->setText((LLStringExplicit)str);
+}
+
+void LLFloaterPathfindingConsole::setHasNoNavMesh()
+{
+ std::string str = getString("navmesh_fetch_complete_none");
+ mPathfindingStatus->setText((LLStringExplicit)str);
+}
+
LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed)
: LLFloater(pSeed),
mShowNavMeshCheckBox(NULL),
@@ -324,6 +336,7 @@ LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed)
mTerrainMaterialD(NULL),
mNavMeshDownloadObserver()
{
+ mNavMeshDownloadObserver.setPathfindingConsole(this);
}
LLFloaterPathfindingConsole::~LLFloaterPathfindingConsole()
diff --git a/indra/newview/llfloaterpathfindingconsole.h b/indra/newview/llfloaterpathfindingconsole.h
index ffa1efd349..7d8369c806 100644
--- a/indra/newview/llfloaterpathfindingconsole.h
+++ b/indra/newview/llfloaterpathfindingconsole.h
@@ -98,6 +98,9 @@ public:
BOOL getShowPathToggle() const {return mShowPathCheckBox->get(); }
+ void setHasNavMeshReceived();
+ void setHasNoNavMesh();
+
protected:
private:
diff --git a/indra/newview/llnavmeshstation.cpp b/indra/newview/llnavmeshstation.cpp
index bb08f00f40..48f54649f8 100644
--- a/indra/newview/llnavmeshstation.cpp
+++ b/indra/newview/llnavmeshstation.cpp
@@ -31,10 +31,13 @@
#include "llagent.h"
#include "llviewerregion.h"
#include "llsdutil.h"
+#include "llfloaterpathfindingconsole.h"
+
//===============================================================================
LLNavMeshStation::LLNavMeshStation()
{
}
+
//===============================================================================
class LLNavMeshUploadResponder : public LLCurl::Responder
{
@@ -98,7 +101,6 @@ public:
void result( const LLSD& content )
{
- llinfos<<"Content received"<<llendl;
//TODO# some sanity checking
if ( content.has("error") )
{
@@ -115,10 +117,12 @@ public:
{
const LLSD::Binary& stuff = content["navmesh_data"].asBinary();
LLPathingLib::getInstance()->extractNavMeshSrcFromLLSD( stuff );
+ pObserver->getPathfindingConsole()->setHasNavMeshReceived();
}
else
{
llwarns<<"no mesh data "<<llendl;
+ pObserver->getPathfindingConsole()->setHasNoNavMesh();
}
}
}
diff --git a/indra/newview/llnavmeshstation.h b/indra/newview/llnavmeshstation.h
index ce884c1466..566f6d2d8d 100644
--- a/indra/newview/llnavmeshstation.h
+++ b/indra/newview/llnavmeshstation.h
@@ -31,6 +31,7 @@
#include "llhandle.h"
//===============================================================================
class LLCurlRequest;
+class LLFloaterPathfindingConsole;
//===============================================================================
class LLNavMeshObserver
{
@@ -51,14 +52,19 @@ class LLNavMeshDownloadObserver
{
public:
//Ctor
- LLNavMeshDownloadObserver() { mObserverHandle.bind(this); }
+ LLNavMeshDownloadObserver()
+ : mPathfindingConsole(NULL)
+ { mObserverHandle.bind(this); }
//Dtor
virtual ~LLNavMeshDownloadObserver() {}
//Accessor for the observers handle
const LLHandle<LLNavMeshDownloadObserver>& getObserverHandle() const { return mObserverHandle; }
+ LLFloaterPathfindingConsole *getPathfindingConsole() {return mPathfindingConsole;}
+ void setPathfindingConsole(LLFloaterPathfindingConsole *pPathfindingConsole) {mPathfindingConsole = pPathfindingConsole;}
protected:
LLRootHandle<LLNavMeshDownloadObserver> mObserverHandle;
+ LLFloaterPathfindingConsole *mPathfindingConsole;
};
//===============================================================================
class LLNavMeshStation : public LLSingleton<LLNavMeshStation>
diff --git a/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml
index f9730e2ece..7b751d525f 100644
--- a/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml
+++ b/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml
@@ -13,9 +13,10 @@
width="833">
<floater.string name="navmesh_fetch_initial"></floater.string>
<floater.string name="navmesh_fetch_inprogress">Downloading the navmesh ...</floater.string>
- <floater.string name="navmesh_fetch_complete">Navmesh received.</floater.string>
- <floater.string name="navmesh_region_not_enabled">Pathfinding is not enabled for this region</floater.string>
- <floater.string name="navmesh_library_not_implemented">Cannot find pathing library implementation</floater.string>
+ <floater.string name="navmesh_fetch_complete_available">Navmesh received.</floater.string>
+ <floater.string name="navmesh_fetch_complete_none">No navmesh for region.</floater.string>
+ <floater.string name="navmesh_region_not_enabled">Pathfinding is not enabled for this region.</floater.string>
+ <floater.string name="navmesh_library_not_implemented">Cannot find pathing library implementation.</floater.string>
<text
height="13"
word_wrap="true"