#include "pouch.h"
#include "extern.h"
#include "flags.h"
-#include <stdlib.h>
+#include <string>
#include <stdio.h>
+using namespace std;
+
void Player::reset()
{
- name.setString();
- password.setString();
exp = 1;
gold = 0;
bank = 500;
setData(NULL);
#ifdef DEBUGMODE
- log("New Player: %s", name.getString());
+ log("New Player: %s", name.c_str());
#endif
}
Player::Player(aClient *user)
{
+
if (user)
{
setData(user->stats);
- name.setString(user->getNick());
+ name = user->getNick();
}
else
setData(NULL);
{
reset(); // Set defaults
- name.setString(n);
+ name = n;
#ifdef DEBUGMODE
- log("New Player: %s", name.getString());
+ 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.getString())
- + strlen(password.getString()) + 48];
- strcpy(output, "Deleting Player");
+ string *output;
+ output = new string("Deleting Player");
#endif
- if (name.getString() != NULL)
- {
- #ifdef DEBUGMODE
- sprintf(output, "%s: %s", output, name.getString());
- #endif
- }
-
- if (password.getString() != NULL)
- {
- #ifdef DEBUGMODE
- sprintf(output, "%s Password: %s", output, password.getString());
- #endif
- }
+ #ifdef DEBUGMODE
+ *output += ": " + name;
+ #endif
#ifdef DEBUGMODE
- log ("%s", output);
- delete [] output;
+ *output += " Password: " + password;
+ log ("%s", output->c_str());
+ delete output;
#endif
}
+void Player::setPassword(const char *p)
+{
+ static char saltChars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV\
+WXYZ0123456789./";
+ static char salt[3];
+
+ salt[0] = saltChars[rand() % strlen(saltChars)];
+ salt[1] = saltChars[rand() % strlen(saltChars)];
+ salt[2] = '\0';
+
+ password = crypt(p, salt);
+}
void Player::setData(Player *right)
{
else
{
char *temp;
- temp = new char[16];
reset();
+ temp = new char[16];
client = NULL;
int num = rand() % 32767;
- sprintf(temp, "Player%d", num);
- name.setString(temp);
+ snprintf(temp, 16, "Player: %d", num);
+ name = temp;
delete []temp;
}
#ifdef DEBUGMODE
- log("Setting Player data for %s", name.getString());
+ log("Setting Player data for %s", name.c_str());
#endif
}
monster_::~monster_()
{
- name.setString("");
- weapon.setString("");
- death.setString("");
}
monster_::monster_()
{
+ name.erase();
+ weapon.erase();
+ death.erase();
strength = 0;
+ defense = 0;
exp = 0;
gold = 0;
maxhp = hp = 0;
weapon = m->weapon;
death = m->death;
strength = m->strength;
+ defense = m->defense;
maxhp = m->maxhp;
hp = m->hp;
gold = m->gold;
weapon = m.weapon;
death = m.death;
strength = m.strength;
+ defense = m.defense;
maxhp = m.maxhp;
hp = m.hp;
gold = m.gold;