#include <stdlib.h>
#include <stdio.h>
-Player::Player(aClient *user)
+void Player::reset()
{
- name = new char [64];
+ delete this;
+ name = new char[64];
+ password = new char[256];
+ name[0] = '\0';
+ password[0] = '\0';
exp = 1;
gold = 0;
fight = NULL;
master = NULL;
battle = NULL;
+}
+
+Player::Player(aClient *user)
+{
if (user)
- strcpy(name, user->getNick());
+ {
+ if (user->stats)
+ setData(user->stats);
+ else
+ reset(); // Set Defaults
+
+ strcpy(name, user->getNick());
+ }
else
{
+ reset(); // Set default properties
int num = rand() % 32767;
sprintf(name, "Player%d", num);
}
}
Player::Player(char *n)
{
- name = new char [64];
+ 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; }
+{
+ if (name)
+ delete name;
+ if (password)
+ delete password;
+}
void Player::setData(Player *right)
{
if (right)
{
strcpy(name, right->name);
+ strcpy(password, right->password);
+
exp = right->exp;
gold = right->gold;
bank = right->bank;
if (&right != this)
{
strcpy(name, right.name);
+ strcpy(password, right.password);
exp = right.exp;
gold = right.gold;
bank = right.bank;