Index: ps/trunk/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FAXPhysicsExport.cpp =================================================================== --- ps/trunk/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FAXPhysicsExport.cpp +++ ps/trunk/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FAXPhysicsExport.cpp @@ -329,16 +329,3 @@ FArchiveXML::LetWriteObject(physicsRigidBodyParameters->GetPhysicsShape(i), techniqueNode); } } - -template -xmlNode* FArchiveXML::AddPhysicsParameter(xmlNode* parentNode, const char* name, FCDParameterAnimatableT& value) -{ - xmlNode* paramNode = AddChild(parentNode, name); - AddContent(paramNode, FUStringConversion::ToString((TYPE&) value)); - if (value.IsAnimated()) - { - const FCDAnimated* animated = value.GetAnimated(); - FArchiveXML::WriteAnimatedValue(animated, paramNode, name); - } - return paramNode; -} Index: ps/trunk/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.h =================================================================== --- ps/trunk/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.h +++ ps/trunk/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.h @@ -553,7 +553,16 @@ static void WritePhysicsRigidBodyParameters(FCDPhysicsRigidBodyParameters* physicsRigidBodyParameters, xmlNode* techniqueNode); template - static xmlNode* AddPhysicsParameter(xmlNode* parentNode, const char* name, FCDParameterAnimatableT& value); + static xmlNode* AddPhysicsParameter(xmlNode* parentNode, const char* name, FCDParameterAnimatableT& value) { + xmlNode* paramNode = AddChild(parentNode, name); + AddContent(paramNode, FUStringConversion::ToString((TYPE&) value)); + if (value.IsAnimated()) + { + const FCDAnimated* animated = value.GetAnimated(); + FArchiveXML::WriteAnimatedValue(animated, paramNode, name); + } + return paramNode; + } // Index: ps/trunk/source/simulation2/helpers/HierarchicalPathfinder.h =================================================================== --- ps/trunk/source/simulation2/helpers/HierarchicalPathfinder.h +++ ps/trunk/source/simulation2/helpers/HierarchicalPathfinder.h @@ -198,7 +198,32 @@ * Returns all reachable regions, optionally ordered in a specific manner. */ template - void FindReachableRegions(RegionID from, std::set& reachable, pass_class_t passClass) const; + void FindReachableRegions(RegionID from, std::set& reachable, pass_class_t passClass) const + { + // Flood-fill the region graph, starting at 'from', + // collecting all the regions that are reachable via edges + reachable.insert(from); + + const EdgesMap& edgeMap = m_Edges.at(passClass); + if (edgeMap.find(from) == edgeMap.end()) + return; + + std::vector open; + open.reserve(64); + open.push_back(from); + + while (!open.empty()) + { + RegionID curr = open.back(); + open.pop_back(); + + for (const RegionID& region : edgeMap.at(curr)) + // Add to the reachable set; if this is the first time we added + // it then also add it to the open list + if (reachable.insert(region).second) + open.push_back(region); + } + } struct SortByCenterToPoint { Index: ps/trunk/source/simulation2/helpers/HierarchicalPathfinder.cpp =================================================================== --- ps/trunk/source/simulation2/helpers/HierarchicalPathfinder.cpp +++ ps/trunk/source/simulation2/helpers/HierarchicalPathfinder.cpp @@ -751,34 +751,6 @@ jGoal = bestJ; } -template -void HierarchicalPathfinder::FindReachableRegions(RegionID from, std::set& reachable, pass_class_t passClass) const -{ - // Flood-fill the region graph, starting at 'from', - // collecting all the regions that are reachable via edges - reachable.insert(from); - - const EdgesMap& edgeMap = m_Edges.at(passClass); - if (edgeMap.find(from) == edgeMap.end()) - return; - - std::vector open; - open.reserve(64); - open.push_back(from); - - while (!open.empty()) - { - RegionID curr = open.back(); - open.pop_back(); - - for (const RegionID& region : edgeMap.at(curr)) - // Add to the reachable set; if this is the first time we added - // it then also add it to the open list - if (reachable.insert(region).second) - open.push_back(region); - } -} - void HierarchicalPathfinder::FindGoalRegionsAndBestNavcells(u16 i0, u16 j0, u16 gi, u16 gj, const PathGoal& goal, std::set& regions, pass_class_t passClass) const { if (goal.type == PathGoal::POINT)