X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/9d3b1d42d4ce6b50f953594317e1902505788631..bf3a2ff9053b30a0ef85efcdb511c796b4718a3e:/gameserv/player.cpp diff --git a/gameserv/player.cpp b/gameserv/player.cpp index 9329836..dc4d5b6 100644 --- a/gameserv/player.cpp +++ b/gameserv/player.cpp @@ -7,8 +7,8 @@ void Player::reset() { - memset(name, 0, 255); - memset(password, 0, 255); + memset(name, 0, 256); + memset(password, 0, 256); exp = 1; gold = 0; @@ -26,10 +26,23 @@ void Player::reset() master = NULL; battle = NULL; flags = 0; + lastcommand = 0; + lastlogin = 0; setAlive(this); inventory.reset(); } +Player::Player() +{ + name = new char[256]; + password = new char[256]; + setData(NULL); + + #ifdef DEBUGMODE + log("New Player: %s", name); + #endif +} + Player::Player(aClient *user) { @@ -44,7 +57,6 @@ Player::Player(aClient *user) else setData(NULL); - cout << "New Player: " << name << endl << flush; } Player::Player(char *n) @@ -56,24 +68,41 @@ Player::Player(char *n) strcpy(name, n); - cout << "New Player: " << name << endl << flush; + #ifdef DEBUGMODE + log("New Player: %s", name); + #endif } Player::~Player() -{ - cout << "Deleting player"; - - if (name) +{ + #ifdef DEBUGMODE + char *output; + output = new char[strlen(name) + strlen(password) + 48]; + strcpy(output, "Deleting Player"); + #endif + + if (name != NULL) { - cout << ": " << name; + #ifdef DEBUGMODE + sprintf(output, "%s: %s", output, name); + #endif + delete [] name; } - if (password) + + if (password != NULL) { - cout << " Password: " << password; + #ifdef DEBUGMODE + sprintf(output, "%s Password: %s", output, password); + #endif + delete [] password; } - cout << endl << "Player Deleted"; + + #ifdef DEBUGMODE + log ("%s", output); + delete [] output; + #endif } void Player::setData(Player *right) @@ -96,16 +125,21 @@ void Player::setData(Player *right) player_fights = right->player_fights; flags = right->flags; inventory.setInventory(&right->inventory); + client = right->client; + lastcommand = right->lastcommand; + lastlogin = right->lastlogin; } else { reset(); - + client = NULL; int num = rand() % 32767; sprintf(name, "Player%d", num); } - cout << "Setting Player data for " << name << endl; + #ifdef DEBUGMODE + log("Setting Player data for %s", name); + #endif } monster_::~monster_() @@ -143,6 +177,23 @@ monster_::monster_(monster_ *m) exp = m->exp; } +monster_::monster_(monster_ &m) +{ + name = new char[strlen(m.name) + 1]; + weapon = new char[strlen(m.weapon) + 1]; + death = new char[strlen(m.death) + 1]; + + strcpy(name, m.name); + strcpy(weapon, m.weapon); + strcpy(death, m.death); + + strength = m.strength; + maxhp = m.maxhp; + hp = m.hp; + gold = m.gold; + exp = m.exp; +} + long int Player::setFlags(long int newflags) { flags = newflags;