]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/player.cpp
This is a big update. I completely changed the way monsters are stored. The new data...
[irc/gameservirc.git] / gameserv / player.cpp
index 39f81468bf53cdff9784efb994c41fcb00734d45..dc4d5b645f23e8125272654a6b18505f8b41ad0a 100644 (file)
@@ -26,10 +26,23 @@ void Player::reset()
     master = NULL;
     battle = NULL;
     flags = 0;
+    lastcommand = 0;
+    lastlogin = 0;
     setAlive(this);
     inventory.reset();
 }
 
+Player::Player()
+{
+    name = new char[256];
+    password = new char[256];
+    setData(NULL);
+
+    #ifdef DEBUGMODE
+       log("New Player: %s", name);
+    #endif
+}
+
 Player::Player(aClient *user)
 {
 
@@ -44,9 +57,6 @@ Player::Player(aClient *user)
     else
        setData(NULL);
 
-    #ifdef DEBUGMODE
-       log("New Player: %s", name);
-    #endif
 }
 
 Player::Player(char *n)
@@ -115,11 +125,14 @@ void Player::setData(Player *right)
         player_fights = right->player_fights;
        flags = right->flags;
        inventory.setInventory(&right->inventory);
+       client = right->client;
+       lastcommand = right->lastcommand;
+       lastlogin = right->lastlogin;
     }
     else
     {
         reset();
-
+       client = NULL;
        int num = rand() % 32767;
        sprintf(name, "Player%d", num);
     }
@@ -164,6 +177,23 @@ monster_::monster_(monster_ *m)
     exp = m->exp;
 }
 
+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;
+}
+
 long int Player::setFlags(long int newflags)
 {
     flags = newflags;