From a368cb9f34abaf691c6fb27f371602aaef35b4bf Mon Sep 17 00:00:00 2001
From: Tazpn <tazpn@users.sourceforge.net>
Date: Sat, 30 Sep 2006 16:18:48 +0000
Subject: [PATCH] Change NodeGroup back to Ptr and fix bone lod controller
 code.

---
 src/obj/ABoneLODController.cpp | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/obj/ABoneLODController.cpp b/src/obj/ABoneLODController.cpp
index 0241e1cf..792f961c 100644
--- a/src/obj/ABoneLODController.cpp
+++ b/src/obj/ABoneLODController.cpp
@@ -49,7 +49,11 @@ vector<Ref<NiNode> > ABoneLODController::GetNodeGroup( int index ) const {
    if (index < 0 || index >= int(nodeGroups.size()) ) {
       throw runtime_error("Invalid index referenced.");
    }
-   return nodeGroups[index].nodes;   
+   vector<NiNodeRef> value;
+   const vector<NiNode*>& nodes = nodeGroups[index].nodes;
+   for (vector<NiNode*>::const_iterator itr = nodes.begin(); itr != nodes.end(); ++itr)
+      value.push_back(*itr);
+   return value;
 }
 
 void ABoneLODController::AddNodeToGroup( int index, Ref<NiNode> node ) {
@@ -57,8 +61,8 @@ void ABoneLODController::AddNodeToGroup( int index, Ref<NiNode> node ) {
       nodeGroups.insert(nodeGroups.end(), NodeGroup() );
    numNodeGroups2 = nodeGroups.size();
 
-   vector<NiNodeRef>& nodes = nodeGroups[index].nodes;
-   vector<NiNodeRef>::iterator itr = std::find(nodes.begin(), nodes.end(), node);
+   vector<NiNode*>& nodes = nodeGroups[index].nodes;
+   vector<NiNode*>::iterator itr = std::find(nodes.begin(), nodes.end(), node);
    if (itr == nodes.end())
       nodes.push_back(node);
 }
@@ -67,8 +71,8 @@ void ABoneLODController::RemoveNodeFromGroup( int index, Ref<NiNode> node ) {
    if (index < 0 || index >= int(nodeGroups.size()) ) {
       throw runtime_error("Invalid index referenced.");
    }
-   vector<NiNodeRef>& nodes = nodeGroups[index].nodes;
-   vector<NiNodeRef>::iterator itr = std::find(nodes.begin(), nodes.end(), node);
+   vector<NiNode*>& nodes = nodeGroups[index].nodes;
+   vector<NiNode*>::iterator itr = std::find(nodes.begin(), nodes.end(), node);
    if (itr == nodes.end())
       return;
    nodes.erase(itr);
-- 
GitLab