diff options
author | Todd Stinson <stinson@lindenlab.com> | 2012-05-30 18:47:12 -0700 |
---|---|---|
committer | Todd Stinson <stinson@lindenlab.com> | 2012-05-30 18:47:12 -0700 |
commit | 3c2be426e5e905076d00b9492c0e66c8b31caf19 (patch) | |
tree | 08d6c5592f0cf0e5b772812e182fdd71a31893fa /indra/newview/llpathfindingcharacterlist.cpp | |
parent | 5d13d78c13a28b92c339a52403e76eb5a50b7b6b (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.cpp | 37 |
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)); + } } |