#include "player.h"
#include "pouch.h"
#include "extern.h"
-#include <stdlib.h>
+#include "flags.h"
+#include <string>
#include <stdio.h>
+using namespace std;
+
void Player::reset()
{
- memset(name, 0, 255);
- memset(password, 0, 255);
-
exp = 1;
gold = 0;
bank = 500;
armor = 1;
weapon = 1;
level = 1;
- alive = 1;
forest_fights = forestfights;
player_fights = 3;
fight = NULL;
master = NULL;
battle = NULL;
flags = 0;
+ lastcommand = 0;
+ lastlogin = 0;
+ setAlive(this);
inventory.reset();
}
-Player::Player(aClient *user)
+Player::Player()
{
+ setData(NULL);
- name = new char[256];
- password = new char[256];
+ #ifdef DEBUGMODE
+ log("New Player: %s", name.c_str());
+ #endif
+}
+
+Player::Player(aClient *user)
+{
if (user)
{
setData(user->stats);
- strcpy(name, user->getNick());
+ name = user->getNick();
}
else
setData(NULL);
-
- cout << "New Player: " << name << endl << flush;
}
Player::Player(char *n)
{
- name = new char[256];
- password = new char[256];
-
reset(); // Set defaults
- strcpy(name, n);
+ name = n;
- cout << "New Player: " << name << endl << flush;
+ #ifdef DEBUGMODE
+ log("New Player: %s", name.c_str());
+ #endif
}
-Player::~Player()
-{
- cout << "Deleting player";
+Player::Player(string n)
+{
+ reset();
+ name = n;
+ #ifdef DEBUGMODE
+ log("New Player: %s", name.c_str());
+ #endif
+}
- if (name)
- {
- cout << ": " << name;
- delete [] name;
- }
- if (password)
- {
- cout << " Password: " << password;
- delete [] password;
- }
- cout << endl << "Player Deleted";
+Player::~Player()
+{
+ #ifdef DEBUGMODE
+ string *output;
+ output = new string("Deleting Player");
+ #endif
+
+ #ifdef DEBUGMODE
+ *output += ": " + name;
+ #endif
+
+ #ifdef DEBUGMODE
+ *output += " Password: " + password;
+ log ("%s", output->c_str());
+ delete output;
+ #endif
}
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;
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;
+ lastlogin = right->lastlogin;
}
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;
}
- cout << "Setting Player data for " << name << endl;
+ #ifdef DEBUGMODE
+ log("Setting Player data for %s", name.c_str());
+ #endif
}
monster_::~monster_()
{
- 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);
+ 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;
exp = m->exp;
}
+monster_::monster_(monster_ &m)
+{
+ name = m.name;
+ weapon = m.weapon;
+ death = m.death;
+ strength = m.strength;
+ maxhp = m.maxhp;
+ hp = m.hp;
+ gold = m.gold;
+ exp = m.exp;
+}
+
long int Player::setFlags(long int newflags)
{
flags = newflags;