X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/0a1518faa49d2d19f189a0abfbf539c14a7c2f64..c7340cbda3026cff96c6250c7d35e51a194658f5:/gameserv/player.cpp diff --git a/gameserv/player.cpp b/gameserv/player.cpp index c9850c4..8c26d60 100644 --- a/gameserv/player.cpp +++ b/gameserv/player.cpp @@ -4,13 +4,8 @@ void Player::reset() { - if (!name) - name = new char[256]; - if (!password) - password = new char[256]; - - name[0] = '\0'; - password[0] = '\0'; + memset(name, 0, 255); + memset(password, 0, 255); exp = 1; gold = 0; @@ -33,8 +28,15 @@ void Player::reset() Player::Player(aClient *user) { + + name = new char[256]; + password = new char[256]; + if (user) + { setData(user->stats); + strcpy(name, user->getNick()); + } else setData(NULL); @@ -43,6 +45,9 @@ Player::Player(aClient *user) Player::Player(char *n) { + name = new char[256]; + password = new char[256]; + reset(); // Set defaults strcpy(name, n); @@ -57,20 +62,18 @@ Player::~Player() if (name) { cout << ": " << name; - delete name; + delete [] name; } if (password) { cout << " Password: " << password; - delete password; + delete [] password; } cout << endl << "Player Deleted"; } void Player::setData(Player *right) { - reset(); - if (right) { strcpy(name, right->name); @@ -92,9 +95,46 @@ void Player::setData(Player *right) } else { + reset(); + int num = rand() % 32767; - sprintf(name, "Player%d\0", num); + sprintf(name, "Player%d", num); } cout << "Setting Player data for " << name << endl; } + +monster_::~monster_() +{ + delete name; + delete weapon; + delete death; +} + +monster_::monster_() +{ + name = new char[32]; + weapon = new char[32]; + death = new char[256]; + + memset(name, 0, 32); + memset(weapon, 0, 32); + memset(death, 0, 256); +} + +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; +}