X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/0a1518faa49d2d19f189a0abfbf539c14a7c2f64..1af35752f2d368fd53598eb57dc837076e862b15:/gameserv/player.cpp diff --git a/gameserv/player.cpp b/gameserv/player.cpp index c9850c4..3677e7c 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; @@ -23,18 +18,25 @@ void Player::reset() weapon = 1; level = 1; alive = 1; - started = 1; // Possibly deprecated forest_fights = 100; player_fights = 3; fight = NULL; master = NULL; battle = NULL; + flags = 0; } 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); @@ -86,15 +89,71 @@ void Player::setData(Player *right) weapon = right->weapon; level = right->level; alive = right->alive; - started = right->started; // Possibly obsoleted forest_fights = right->forest_fights; player_fights = right->player_fights; + flags = right->flags; } 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; +} + +long int Player::setFlags(long int newflags) +{ + flags = newflags; + return getFlags(); +} + +long int Player::addFlag(long int flag) +{ + flags |= flag; + return getFlags(); +} + +long int Player::remFlag(long int flag) +{ + flags &= ~flag; + return getFlags(); +} +