X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/bf3a2ff9053b30a0ef85efcdb511c796b4718a3e..e22e9e69dbc4bfd6b86f4e5f4ba28486b2407792:/gameserv/player.cpp diff --git a/gameserv/player.cpp b/gameserv/player.cpp index dc4d5b6..e737637 100644 --- a/gameserv/player.cpp +++ b/gameserv/player.cpp @@ -2,14 +2,13 @@ #include "pouch.h" #include "extern.h" #include "flags.h" -#include +#include #include +using namespace std; + void Player::reset() { - memset(name, 0, 256); - memset(password, 0, 256); - exp = 1; gold = 0; bank = 500; @@ -34,74 +33,60 @@ void Player::reset() Player::Player() { - name = new char[256]; - password = new char[256]; setData(NULL); #ifdef DEBUGMODE - log("New Player: %s", name); + log("New Player: %s", name.c_str()); #endif } Player::Player(aClient *user) { - name = new char[256]; - password = new char[256]; - if (user) { setData(user->stats); - strcpy(name, user->getNick()); + name = user->getNick(); } else setData(NULL); - } Player::Player(char *n) { - name = new char[256]; - password = new char[256]; - reset(); // Set defaults - strcpy(name, n); + name = n; #ifdef DEBUGMODE - log("New Player: %s", name); + log("New Player: %s", name.c_str()); + #endif +} + +Player::Player(string n) +{ + reset(); + name = n; + #ifdef DEBUGMODE + log("New Player: %s", name.c_str()); #endif } Player::~Player() { #ifdef DEBUGMODE - char *output; - output = new char[strlen(name) + strlen(password) + 48]; - strcpy(output, "Deleting Player"); + string *output; + output = new string("Deleting Player"); #endif - if (name != NULL) - { - #ifdef DEBUGMODE - sprintf(output, "%s: %s", output, name); - #endif - - delete [] name; - } - - if (password != NULL) - { - #ifdef DEBUGMODE - sprintf(output, "%s Password: %s", output, password); - #endif - - delete [] password; - } + #ifdef DEBUGMODE + *output += ": " + name; + #endif #ifdef DEBUGMODE - log ("%s", output); - delete [] output; + *output += " Password: " + password; + log ("%s", output->c_str()); + delete output; #endif } @@ -109,8 +94,8 @@ void Player::setData(Player *right) { if (right) { - strcpy(name, right->name); - strcpy(password, right->password); + name = right->name; + password = right->password; exp = right->exp; gold = right->gold; bank = right->bank; @@ -131,45 +116,41 @@ void Player::setData(Player *right) } else { + char *temp; reset(); + temp = new char[16]; client = NULL; int num = rand() % 32767; - sprintf(name, "Player%d", num); + snprintf(temp, 16, "Player: %d", num); + name = temp; + delete []temp; } #ifdef DEBUGMODE - log("Setting Player data for %s", name); + log("Setting Player data for %s", name.c_str()); #endif } monster_::~monster_() { - delete name; - delete weapon; - delete death; } monster_::monster_() { - name = new char[64]; - weapon = new char[64]; - death = new char[512]; - - memset(name, 0, 64); - memset(weapon, 0, 64); - memset(death, 0, 512); + name.erase(); + weapon.erase(); + death.erase(); + strength = 0; + exp = 0; + gold = 0; + maxhp = hp = 0; } 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); - + name = m->name; + weapon = m->weapon; + death = m->death; strength = m->strength; maxhp = m->maxhp; hp = m->hp; @@ -179,14 +160,9 @@ monster_::monster_(monster_ *m) 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); - + name = m.name; + weapon = m.weapon; + death = m.death; strength = m.strength; maxhp = m.maxhp; hp = m.hp;