]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/list.h
* Added some admin features.
[irc/gameservirc.git] / gameserv / list.h
index 8a9287c2925caa78bee444ca74e948917a817f02..384e9ada364929a5a3dbed97e67ac8ed553d0e2a 100644 (file)
@@ -6,6 +6,7 @@
 #include "listnode.h"
 #include "aClient.h"
 
+
 template <class T>
 class List {
     public:
@@ -18,6 +19,7 @@ class List {
        bool remove( T * );
        bool isEmpty() const;
        void print() const;
+       ListNode < T > *Find( T * );
         ListNode < T > *First() { return firstPtr; };
        ListNode < T > *Last() { return lastPtr; };
     private:
@@ -142,6 +144,21 @@ ListNode<T> *List<T>::getNewNode( const T &value)
 
     return ptr;
 }
+template<class T>
+ListNode<T> *List<T>::Find( T *value )
+{
+    if (isEmpty()) {return NULL;}
+
+    ListNode<T> *currentPtr;
+    currentPtr = firstPtr;
+    while (currentPtr)
+    {
+       if (currentPtr->getData() == value)
+           return currentPtr;
+       currentPtr = currentPtr->Next();
+    }
+    return NULL;
+}
 
 template <class T>
 void List<T>::print() const
@@ -156,11 +173,11 @@ void List<T>::print() const
     currentPtr = firstPtr;
     while (currentPtr)
     {
-       cout << "aClient: " << currentPtr->getData() << flush;
+       cout << "aClient: " << *currentPtr->getData() << flush;
 
         if (currentPtr->getData()->stats)
-           cout << "  Player Name: " << &currentPtr->getData()->stats->name 
-                << "   Password: " << &currentPtr->getData()->stats->password << flush;
+           cout << "  Player Name: " << currentPtr->getData()->stats->name 
+                << "   Password: " << currentPtr->getData()->stats->password << flush;
        cout << endl;
        currentPtr = currentPtr->next;
     }