X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/cbf6551f8b3351fadcc1c5d82d193c24313a23bf..f71a53ab6e251712c26a11c0b373d41014f775d5:/gameserv/aClient.cpp diff --git a/gameserv/aClient.cpp b/gameserv/aClient.cpp index e95c332..8de6b35 100644 --- a/gameserv/aClient.cpp +++ b/gameserv/aClient.cpp @@ -1,20 +1,44 @@ #include "aClient.h" +#include "options.h" +#include "extern.h" #include #include aClient::aClient(char *n) { - cout << "aClient created: " - << (n[0] == '\0' ? "NULL" : n) << endl; + #ifdef DEBUGMODE + log("aClient created: %s", (n[0] == '\0' ? "NULL" : n)); + #endif strcpy(nick, n); + + #ifdef P10 + strcpy(realnick, n); + #endif + stats = NULL; + flags = 0; } +#ifdef P10 +aClient::aClient(char *n, char *rn) +{ + #ifdef DEBUGMODE + log("aClient created: %s", (n[0] == '\0' ? "NULL" : n)); + #endif + strcpy(nick, n); + strcpy(realnick, rn); + stats = NULL; + flags = 0; +} +#endif aClient::aClient(const aClient &right) { - cout << "aClient created from another aClient: " << right.nick - << endl; + #ifdef DEBUGMODE + log("aClient created from another aClient: %s\n", right.nick); + #endif + stats = NULL; + flags = 0; setData(&right); } @@ -25,13 +49,39 @@ aClient::aClient() aClient::~aClient() { - cout << "aClient deleted: " << *this << flush; if (stats) { - cout << ' ' << stats->name << ' ' << stats->password << endl << flush; + #ifdef DEBUGMODE + log("aClient deleted: %s %s %s", nick, stats->getName().c_str(), stats->getPassword().c_str()); + #endif + delete stats; } - cout << endl << flush; + #ifdef DEBUGMODE + else + { + log("aClient deleted: %s", nick); + } + #endif + + flags = 0; +} + +bool aClient::operator!=(const aClient &right) +{ + return !(*this == right); +} + +bool aClient::operator==(const aClient &right) +{ + if (strcmp(nick, right.nick) == 0 && stats == right.stats) + { + return true; + } + else + { + return false; + } } ostream &operator<<( ostream &out, const aClient &c ) @@ -42,16 +92,39 @@ ostream &operator<<( ostream &out, const aClient &c ) void aClient::setData(const aClient *right) { - if (right != this) + if (right != this) { - strcpy(nick, right->nick); - if (right->stats) - { - if (!stats) - stats = new Player; - - cout << "Should be setting data for " << right->stats->name << endl; - stats->setData(right->stats); - } + strcpy(nick, right->nick); +#ifdef P10 + strcpy(realnick, right->realnick); +#endif + if (right->stats) + { + if (!stats) + stats = new Player; +#ifdef DEBUGMODE + log("Should be setting data for %s", right->stats->getName().c_str()); +#endif + + stats->setData(right->stats); + } } } + +long int aClient::setFlags(long int newflags) +{ + flags = newflags; + return getFlags(); +} + +long int aClient::addFlag(long int flag) +{ + flags |= flag; + return getFlags(); +} + +long int aClient::remFlag(long int flag) +{ + flags &= ~flag; + return getFlags(); +}