]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/player.cpp
Implemented the definitions for the new items class and added some declarations into...
[irc/gameservirc.git] / gameserv / player.cpp
index 72e9367c499c11f6263d3bacdc5fed441bc56bf4..3d3887b52f8e13704634f985e8db41c3e86dfe68 100644 (file)
@@ -1,14 +1,15 @@
+#include "item.h"
 #include "player.h"
 #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;
@@ -16,8 +17,8 @@ void Player::reset()
     maxhp = 10;
     strength = 0;
     defense = 0;
-    armor = 1;
-    weapon = 1;
+    arm = 1;
+    wea = 1;
     level = 1;
     forest_fights = forestfights;
     player_fights = 3;
@@ -36,60 +37,59 @@ Player::Player()
     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());
-    }
-    else
-       setData(NULL);
-}
-
 Player::Player(char *n)
 {
     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)
 {
@@ -104,8 +104,8 @@ void Player::setData(Player *right)
         maxhp = right->maxhp;
         strength = right->strength;
         defense = right->defense;
-        armor = right->armor;
-        weapon = right->weapon;
+        arm = right->arm;
+        wea = right->wea;
         level = right->level;
         forest_fights = right->forest_fights;
         player_fights = right->player_fights;
@@ -118,30 +118,31 @@ 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;
@@ -153,6 +154,7 @@ monster_::monster_(monster_ *m)
     weapon = m->weapon;
     death = m->death;
     strength = m->strength;
+    defense = m->defense;
     maxhp = m->maxhp;
     hp = m->hp;
     gold = m->gold;
@@ -165,6 +167,7 @@ monster_::monster_(monster_ &m)
     weapon = m.weapon;
     death = m.death;
     strength = m.strength;
+    defense = m.defense;
     maxhp = m.maxhp;
     hp = m.hp;
     gold = m.gold;