#include <stdlib.h>
#include <stdio.h>
-Player::Player(aClient *user)
+void Player::reset()
{
- name = new char [64];
+ memset(name, 0, 255);
+ memset(password, 0, 255);
exp = 1;
gold = 0;
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;
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;
}