]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/player.cpp
* Added some admin features.
[irc/gameservirc.git] / gameserv / player.cpp
index c9850c4726b71fa795c4500db00ebfda4b8aa2b5..8c26d60eef15580572b9ffff9076e9c029cc2bec 100644 (file)
@@ -4,13 +4,8 @@
 
 void Player::reset()
 {
-    if (!name)
-       name = new char[256];
-    if (!password)
-       password = new char[256];
-
-    name[0] = '\0';
-    password[0] = '\0';
+    memset(name, 0, 255);
+    memset(password, 0, 255);
 
     exp = 1;
     gold = 0;
@@ -33,8 +28,15 @@ void Player::reset()
 
 Player::Player(aClient *user)
 {
+
+    name = new char[256];
+    password = new char[256];
+
     if (user)
+    {
        setData(user->stats);
+       strcpy(name, user->getNick());
+    }
     else
        setData(NULL);
 
@@ -43,6 +45,9 @@ Player::Player(aClient *user)
 
 Player::Player(char *n)
 {
+    name = new char[256];
+    password = new char[256];
+
     reset(); // Set defaults
 
     strcpy(name, n);
@@ -57,20 +62,18 @@ Player::~Player()
     if (name)
     {
        cout << ": " << name;
-       delete name;
+       delete [] name;
     }
     if (password)
     {
        cout << "   Password: " << password;
-       delete password;
+       delete [] password;
     }
     cout << endl << "Player Deleted";
 }
 
 void Player::setData(Player *right)
 {
-    reset();
-
     if (right)
     {
         strcpy(name, right->name);
@@ -92,9 +95,46 @@ void Player::setData(Player *right)
     }
     else
     {
+        reset();
+
        int num = rand() % 32767;
-       sprintf(name, "Player%d\0", num);
+       sprintf(name, "Player%d", num);
     }
 
     cout << "Setting Player data for " << name << endl;
 }
+
+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);
+}
+
+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;
+}