X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/3662210ff8fbf469ecfc45ce9e1734ddb781e6fd..6f727d4c9eb5c886f14598577f40da583577444e:/gameserv/player.cpp diff --git a/gameserv/player.cpp b/gameserv/player.cpp index 55aa920..75ab302 100644 --- a/gameserv/player.cpp +++ b/gameserv/player.cpp @@ -1,13 +1,14 @@ #include "player.h" #include "pouch.h" #include "extern.h" +#include "flags.h" #include #include void Player::reset() { - memset(name, 0, 255); - memset(password, 0, 255); + memset(name, 0, 256); + memset(password, 0, 256); exp = 1; gold = 0; @@ -19,16 +20,28 @@ void Player::reset() armor = 1; weapon = 1; level = 1; - alive = 1; forest_fights = forestfights; player_fights = 3; fight = NULL; master = NULL; battle = NULL; flags = 0; + lastcommand = 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) { @@ -43,7 +56,6 @@ Player::Player(aClient *user) else setData(NULL); - cout << "New Player: " << name << endl << flush; } Player::Player(char *n) @@ -55,24 +67,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) @@ -91,20 +120,24 @@ void Player::setData(Player *right) armor = right->armor; weapon = right->weapon; level = right->level; - alive = right->alive; forest_fights = right->forest_fights; player_fights = right->player_fights; flags = right->flags; + inventory.setInventory(&right->inventory); + client = right->client; + lastcommand = right->lastcommand; } 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_() @@ -116,13 +149,13 @@ monster_::~monster_() monster_::monster_() { - name = new char[32]; - weapon = new char[32]; - death = new char[256]; + name = new char[64]; + weapon = new char[64]; + death = new char[512]; - memset(name, 0, 32); - memset(weapon, 0, 32); - memset(death, 0, 256); + memset(name, 0, 64); + memset(weapon, 0, 64); + memset(death, 0, 512); } monster_::monster_(monster_ *m)