summaryrefslogtreecommitdiff
path: root/indra/newview/llpathfindingcharacterlist.cpp
diff options
context:
space:
mode:
authorTodd Stinson <stinson@lindenlab.com>2012-05-30 18:47:12 -0700
committerTodd Stinson <stinson@lindenlab.com>2012-05-30 18:47:12 -0700
commit3c2be426e5e905076d00b9492c0e66c8b31caf19 (patch)
tree08d6c5592f0cf0e5b772812e182fdd71a31893fa /indra/newview/llpathfindingcharacterlist.cpp
parent5d13d78c13a28b92c339a52403e76eb5a50b7b6b (diff)
First pass at refactoring the pathfinding linksets and pathfinding characters classes to reduce code duplication, as both functionalities were heavily duplicated.
Diffstat (limited to 'indra/newview/llpathfindingcharacterlist.cpp')
-rw-r--r--indra/newview/llpathfindingcharacterlist.cpp37
1 files changed, 21 insertions, 16 deletions
diff --git a/indra/newview/llpathfindingcharacterlist.cpp b/indra/newview/llpathfindingcharacterlist.cpp
index 5ab4a8910f..53b21f436d 100644
--- a/indra/newview/llpathfindingcharacterlist.cpp
+++ b/indra/newview/llpathfindingcharacterlist.cpp
@@ -27,37 +27,42 @@
#include "llviewerprecompiledheaders.h"
-#include <string>
-#include <map>
+#include "llpathfindingcharacterlist.h"
#include "llsd.h"
-#include "lluuid.h"
#include "llpathfindingcharacter.h"
-#include "llpathfindingcharacterlist.h"
+#include "llpathfindingobject.h"
+#include "llpathfindingobjectlist.h"
//---------------------------------------------------------------------------
// LLPathfindingCharacterList
//---------------------------------------------------------------------------
LLPathfindingCharacterList::LLPathfindingCharacterList()
- : LLPathfindingCharacterMap()
+ : LLPathfindingObjectList()
{
}
-LLPathfindingCharacterList::LLPathfindingCharacterList(const LLSD& pCharacterItems)
- : LLPathfindingCharacterMap()
+LLPathfindingCharacterList::LLPathfindingCharacterList(const LLSD& pCharacterListData)
+ : LLPathfindingObjectList()
{
- for (LLSD::map_const_iterator characterItemIter = pCharacterItems.beginMap();
- characterItemIter != pCharacterItems.endMap(); ++characterItemIter)
- {
- const std::string& uuid(characterItemIter->first);
- const LLSD& characterData = characterItemIter->second;
- LLPathfindingCharacterPtr character(new LLPathfindingCharacter(uuid, characterData));
- insert(std::pair<std::string, LLPathfindingCharacterPtr>(uuid, character));
- }
+ parseCharacterListData(pCharacterListData);
}
LLPathfindingCharacterList::~LLPathfindingCharacterList()
{
- clear();
+}
+
+void LLPathfindingCharacterList::parseCharacterListData(const LLSD& pCharacterListData)
+{
+ LLPathfindingObjectMap &objectMap = getObjectMap();
+
+ for (LLSD::map_const_iterator characterDataIter = pCharacterListData.beginMap();
+ characterDataIter != pCharacterListData.endMap(); ++characterDataIter)
+ {
+ const std::string& uuid(characterDataIter->first);
+ const LLSD& characterData = characterDataIter->second;
+ LLPathfindingObjectPtr character(new LLPathfindingCharacter(uuid, characterData));
+ objectMap.insert(std::pair<std::string, LLPathfindingObjectPtr>(uuid, character));
+ }
}