X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/85ce9d3ecb3e6888dae590b3a8e347e0a2131bd9..c7340cbda3026cff96c6250c7d35e51a194658f5:/gameserv/player.cpp diff --git a/gameserv/player.cpp b/gameserv/player.cpp index 5dbf6d5..8c26d60 100644 --- a/gameserv/player.cpp +++ b/gameserv/player.cpp @@ -2,9 +2,10 @@ #include #include -Player::Player(aClient *user) +void Player::reset() { - name = new char [64]; + memset(name, 0, 255); + memset(password, 0, 255); exp = 1; gold = 0; @@ -23,50 +24,60 @@ Player::Player(aClient *user) fight = NULL; master = NULL; battle = NULL; +} + +Player::Player(aClient *user) +{ + + name = new char[256]; + password = new char[256]; if (user) - strcpy(name, user->getNick()); - else { - int num = rand() % 32767; - sprintf(name, "Player%d", num); + setData(user->stats); + strcpy(name, user->getNick()); } + else + setData(NULL); + cout << "New Player: " << name << endl << flush; } + Player::Player(char *n) { - name = new char [64]; + name = new char[256]; + password = new char[256]; + + reset(); // Set defaults - exp = 1; - gold = 0; - bank = 500; - hp = 10; - maxhp = 10; - strength = 0; - defense = 0; - armor = 1; - weapon = 1; - level = 1; - alive = 1; - started = 1; // Possibly deprecated - forest_fights = 100; - player_fights = 3; - fight = NULL; - master = NULL; - battle = NULL; strcpy(name, n); cout << "New Player: " << name << endl << flush; } Player::~Player() -{ delete name; } +{ + cout << "Deleting player"; + + if (name) + { + cout << ": " << name; + delete [] name; + } + if (password) + { + cout << " Password: " << password; + delete [] password; + } + cout << endl << "Player Deleted"; +} void Player::setData(Player *right) { if (right) { strcpy(name, right->name); + strcpy(password, right->password); exp = right->exp; gold = right->gold; bank = right->bank; @@ -81,29 +92,49 @@ void Player::setData(Player *right) started = right->started; // Possibly obsoleted forest_fights = right->forest_fights; player_fights = right->player_fights; - cout << "Setting Player data for " << right->name << endl; } + else + { + reset(); + + int num = rand() % 32767; + sprintf(name, "Player%d", num); + } + + cout << "Setting Player data for " << name << endl; } -const Player &Player::operator=( const Player &right ) +monster_::~monster_() { - if (&right != this) - { - strcpy(name, right.name); - exp = right.exp; - gold = right.gold; - bank = right.bank; - hp = right.hp; - maxhp = right.maxhp; - strength = right.strength; - defense = right.defense; - armor = right.armor; - weapon = right.weapon; - level = right.level; - alive = right.alive; - started = right.started; // Possibly obsoleted - forest_fights = right.forest_fights; - player_fights = right.player_fights; - } - return *this; // Enables Cascading ( x = y = z;) + 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; }