]> jfr.im git - irc/gameservirc.git/blame_incremental - gameserv/aClient.cpp
updated the Change log w/ new additions
[irc/gameservirc.git] / gameserv / aClient.cpp
... / ...
CommitLineData
1#include "aClient.h"
2#include "options.h"
3#include "extern.h"
4#include <stdlib.h>
5#include <stdio.h>
6
7aClient::aClient(char *n)
8{
9 #ifdef DEBUGMODE
10 log("aClient created: %s", (n[0] == '\0' ? "NULL" : n));
11 #endif
12 strcpy(nick, n);
13
14 #ifdef P10
15 strcpy(realnick, n);
16 #endif
17
18 stats = NULL;
19 flags = 0;
20}
21#ifdef P10
22aClient::aClient(char *n, char *rn)
23{
24 #ifdef DEBUGMODE
25 log("aClient created: %s", (n[0] == '\0' ? "NULL" : n));
26 #endif
27 strcpy(nick, n);
28 strcpy(realnick, rn);
29 stats = NULL;
30 flags = 0;
31}
32#endif
33
34aClient::aClient(const aClient &right)
35{
36 #ifdef DEBUGMODE
37 log("aClient created from another aClient: %s\n", right.nick);
38 #endif
39
40 stats = NULL;
41 flags = 0;
42 setData(&right);
43}
44
45aClient::aClient()
46{
47 aClient("");
48}
49
50aClient::~aClient()
51{
52 if (stats)
53 {
54 #ifdef DEBUGMODE
55 log("aClient deleted: %s %s %s", nick, stats->getName().c_str(), stats->getPassword().c_str());
56 #endif
57
58 delete stats;
59 }
60 #ifdef DEBUGMODE
61 else
62 {
63 log("aClient deleted: %s", nick);
64 }
65 #endif
66
67 flags = 0;
68}
69
70bool aClient::operator!=(const aClient &right)
71{
72 return !(*this == right);
73}
74
75bool aClient::operator==(const aClient &right)
76{
77 if (strcmp(nick, right.nick) == 0 && stats == right.stats)
78 {
79 return true;
80 }
81 else
82 {
83 return false;
84 }
85}
86
87ostream &operator<<( ostream &out, const aClient &c )
88{
89 out << (c.nick[0] == '\0' ? "NULL" : c.nick);
90 return out;
91}
92
93void aClient::setData(const aClient *right)
94{
95 if (right != this)
96 {
97 strcpy(nick, right->nick);
98#ifdef P10
99 strcpy(realnick, right->realnick);
100#endif
101 if (right->stats)
102 {
103 if (!stats)
104 stats = new Player;
105#ifdef DEBUGMODE
106 log("Should be setting data for %s", right->stats->getName().c_str());
107#endif
108
109 stats->setData(right->stats);
110 }
111 }
112}
113
114long int aClient::setFlags(long int newflags)
115{
116 flags = newflags;
117 return getFlags();
118}
119
120long int aClient::addFlag(long int flag)
121{
122 flags |= flag;
123 return getFlags();
124}
125
126long int aClient::remFlag(long int flag)
127{
128 flags &= ~flag;
129 return getFlags();
130}