]> jfr.im git - irc/gameservirc.git/blob - gameserv/listnode.h
This is a big update. I completely changed the way monsters are stored. The new data...
[irc/gameservirc.git] / gameserv / listnode.h
1 #ifndef LISTNODE_H
2 #define LISTNODE_H
3
4 #include "aClient.h"
5
6 template<class T> class List;
7
8
9 template <class T>
10 class ListNode {
11 friend class List<T>;
12 public:
13 ListNode(const T &);
14 ListNode(T &);
15 T *getData();
16 void setData(const T &);
17 void setPtr( T * );
18 void setNewPtr( T * );
19 ListNode<T> *Next() { return next; };
20 ListNode<T> *Prev() { return prev; };
21 private:
22 T *data;
23 ListNode<T> *next;
24 ListNode<T> *prev;
25 };
26
27 template <class T>
28 ListNode<T>::ListNode(const T &info)
29 {
30 next = NULL;
31 prev = NULL;
32 data = new T(info);
33 }
34 template <class T>
35 ListNode<T>::ListNode(T &info)
36 {
37 next = NULL;
38 prev = NULL;
39 data = new T(info);
40 }
41
42 template <class T>
43 T *ListNode<T>::getData() { return data; }
44
45 template <class T>
46 void ListNode<T>::setData( const T &info )
47 { data ( info ); }
48
49 template <class T>
50 void ListNode<T>::setPtr( T *newPtr )
51 {
52 T *temp;
53 temp = data;
54 data = newPtr;
55 delete temp;
56 }
57
58 template <class T>
59 void ListNode<T>::setNewPtr( T *newPtr )
60 {
61 data = newPtr;
62 }
63 #endif