]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/player.cpp
More exciting additions to FilePlayerDAO!
[irc/gameservirc.git] / gameserv / player.cpp
index 572333dbe4be06c142aa9fb641b6ae2905c82ebb..2b163adee831d74d4de901c808e4d0f1d4974c3c 100644 (file)
@@ -21,135 +21,135 @@ using namespace std;
 
 void Player::reset()
 {
-  exp = 1;
-  gold = 0;
-  bank = 500;
-  hp = 10;
-  maxhp = 10;
-  strength = 2;
-  defense = 1;
-  level = 1;
-  forest_fights = forestfights;
-  player_fights = 3;
-  fight = NULL;
-  master = NULL;
-  battle = NULL;
-  flags = 0;
-  lastcommand = 0;
-  lastlogin = 0;
-  setAlive(this);
-  w = NULL;
-  a = NULL;
-  inventory->clear();
+    exp = 1;
+    gold = 0;
+    bank = 500;
+    hp = 10;
+    maxhp = 10;
+    strength = 2;
+    defense = 1;
+    level = 1;
+    forest_fights = forestfights;
+    player_fights = 3;
+    fight = NULL;
+    master = NULL;
+    battle = NULL;
+    flags = 0;
+    lastcommand = 0;
+    lastlogin = time(NULL);
+    setAlive(this);
+    clearMaster(this);
+    w = NULL;
+    a = NULL;
+    inventory->clear();
 }
 
 Player::Player()
 {
-  inventory = new pouch();
-  setData(NULL);
+    inventory = new pouch();
+    setData(NULL);
   
 #ifdef DEBUGMODE
-  log("New Player: %s", name.c_str());
+    log("New Player: %s", name.c_str());
 #endif
 }
 
 Player::Player(char *n)
 {
-  inventory = new pouch();
-  reset(); // Set defaults
-  
-  name = n;
+    inventory = new pouch();
+    reset(); // Set defaults
+
+    name = n;
   
 #ifdef DEBUGMODE
-  log("New Player: %s", name.c_str());
+    log("New Player: %s", name.c_str());
 #endif
 }
 
 Player::Player(string n)
 {
-  inventory = new pouch();
-  reset();
-  name = n;
+    inventory = new pouch();
+    reset();
+    name = n;
 #ifdef DEBUGMODE
-  log("New Player: %s", name.c_str());
+    log("New Player: %s", name.c_str());
 #endif
 }
 
 Player::~Player()
-{   
-  delete inventory;
-
-#ifdef DEBUGMODE
-  string *output;
-  output = new string("Deleting Player");
-#endif
-  
-#ifdef DEBUGMODE
-  *output += ": " + name;
-#endif
+{
+    if (inventory != NULL)
+        delete inventory;
   
+    delMonster();
+    delMaster();
+    delBattle();
 #ifdef DEBUGMODE
-  *output += "    Password: " + password;
-  log ("%s", output->c_str());
-  delete output;
+    string *output;
+    output = new string("Deleting Player");
+    *output += ": " + name;
+    *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];
+    static char saltChars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV\
+    WXYZ0123456789./";
+    static char salt[3];
   
-  salt[0] = saltChars[rand() % strlen(saltChars)];
-  salt[1] = saltChars[rand() % strlen(saltChars)];
-  salt[2] = '\0';
+    salt[0] = saltChars[rand() % strlen(saltChars)];
+    salt[1] = saltChars[rand() % strlen(saltChars)];
+    salt[2] = '\0';
   
-  password = crypt(p, salt);
+    password = crypt(p, salt);
 }
 
 void Player::setRawPassword(const char *p)
 {
-  password = p;
+    password = p;
 }
 
 void Player::setData(Player *right)
 {
-  if (right)
+    if (right)
     {
-      name = right->name;
-      password = right->password;
-      exp = right->exp;
-      gold = right->gold;
-      bank = right->bank;
-      hp = right->hp;
-      maxhp = right->maxhp;
-      strength = right->strength;
-      defense = right->defense;
-      level = right->level;
-      forest_fights = right->forest_fights;
-      player_fights = right->player_fights;
-      flags = right->flags;
-      *inventory = *right->inventory;
-      client = right->client;
-      lastcommand = right->lastcommand;
-      lastlogin = right->lastlogin;
-      w = right->w;
-      a = right->a;
+        name = right->name;
+        password = right->password;
+        exp = right->exp;
+        gold = right->gold;
+        bank = right->bank;
+        hp = right->hp;
+        maxhp = right->maxhp;
+        strength = right->strength;
+        defense = right->defense;
+        level = right->level;
+        forest_fights = right->forest_fights;
+        player_fights = right->player_fights;
+        flags = right->flags;
+        *inventory = *right->inventory;
+        client = right->client;
+        lastcommand = right->lastcommand;
+        lastlogin = right->lastlogin;
+        w = right->w;
+        a = right->a;
     }
-  else
+    else
     {
-      char *temp;
-      reset();
-      temp = new char[16];
-      client = NULL;
-      int num = rand() % 32767;
-      snprintf(temp, 16, "Player: %d", num);
-      name = temp;
-      delete []temp;
+        char *temp;
+        reset();
+        temp = new char[16];
+        client = NULL;
+        int num = rand() % 32767;
+        snprintf(temp, 16, "Player: %d", num);
+        name = temp;
+        delete []temp;
     }
   
 #ifdef DEBUGMODE
-  log("Setting Player data for %s", name.c_str());
+    log("Setting Player data for %s", name.c_str());
 #endif
 }
 
@@ -159,341 +159,373 @@ Monster::~Monster()
 
 Monster::Monster()
 {
-  name.erase();
-  weapon.erase();
-  death.erase();
-  strength = 0;
-  defense = 0;
-  exp = 0;
-  gold = 0;
-  maxhp = hp = 0;
+    name.erase();
+    weapon.erase();
+    death.erase();
+    strength = 0;
+    defense = 0;
+    exp = 0;
+    gold = 0;
+    maxhp = hp = 0;
 }
 
 Monster::Monster(Monster *m)
 {
-  name = m->name;
-  weapon = m->weapon;
-  death = m->death;
-  strength = m->strength;
-  defense = m->defense;
-  maxhp = m->maxhp;
-  hp = m->hp;
-  gold = m->gold;
-  exp = m->exp;
+    name = m->name;
+    weapon = m->weapon;
+    death = m->death;
+    strength = m->strength;
+    defense = m->defense;
+    maxhp = m->maxhp;
+    hp = m->hp;
+    gold = m->gold;
+    exp = m->exp;
 }
 
 Monster::Monster(Monster &m)
 {
-  name = m.name;
-  weapon = m.weapon;
-  death = m.death;
-  strength = m.strength;
-  defense = m.defense;
-  maxhp = m.maxhp;
-  hp = m.hp;
-  gold = m.gold;
-  exp = m.exp;
+    name = m.name;
+    weapon = m.weapon;
+    death = m.death;
+    strength = m.strength;
+    defense = m.defense;
+    maxhp = m.maxhp;
+    hp = m.hp;
+    gold = m.gold;
+    exp = m.exp;
+}
+
+Monster::Monster(const Monster &m)
+{
+    name = m.name;
+    weapon = m.weapon;
+    death = m.death;
+    strength = m.strength;
+    defense = m.defense;
+    maxhp = m.maxhp;
+    hp = m.hp;
+    gold = m.gold;
+    exp = m.exp;
 }
 
 long int Player::setFlags(long int newflags)
 {
-  flags = newflags;
-  return getFlags();
+    flags = newflags;
+    return getFlags();
 }
 
 long int Player::addFlag(long int flag)
 {
-  flags |= flag;
-  return getFlags();
+    flags |= flag;
+    return getFlags();
 }
 
 long int Player::remFlag(long int flag)
 {
-  flags &= ~flag;
-  return getFlags();
+    flags &= ~flag;
+    return getFlags();
 }
 
 void Player::setWeapon(item &weap)
 {
-  w = &weap;
+    w = &weap;
 }
 void Player::setArmor(item &arm)
 {
-  a = &arm;
+    a = &arm;
 }
 
 void Player::setName(string &n)
 {
-  name = n;
+    name = n;
 }
 
 void Player::setName(const char *n)
 {
-  name = n;
+    name = n;
 }
 
 void Player::setLevel(int l)
 {
-  if (l > 0 && l <= REALLEVELS)
-       {
-         level = l;
-       }
+    if (l > 0 && l <= REALLEVELS)
+    {
+        level = l;
+    }
 }
 
 void Player::setExp(long int e)
 {
-  if (e <= 2000000000 && e > 0)
-       {
-         exp = e;
-       }
+    if (e <= 2000000000 && e > 0)
+    {
+        exp = e;
+    }
 }
 
 void Player::setGold(long int g)
 {
-  if (g <= 2000000000 && g >= 0)
-       {
-         gold = g;
-       }
-  else if (g > 2000000000)
-       {
-         gold = 2000000000;
-       }
+    if (g <= 2000000000 && g >= 0)
+    {
+        gold = g;
+    }
+    else if (g > 2000000000)
+    {
+        gold = 2000000000;
+    }
 }
 
 void Player::setBank(long int b)
 {
-  if (b <= 2000000000 && b >= 0)
-       {
-         bank = b;
-       }
-  else if (b > 2000000000)
-       {
-         bank = 2000000000;
-       }
+    if (b <= 2000000000 && b >= 0)
+    {
+        bank = b;
+    }
+    else if (b > 2000000000)
+    {
+        bank = 2000000000;
+    }
 }
 
 void Player::setHP(int h)
 {
-  hp = h;
+    hp = h;
 
-  if (hp < 0)
-       {
-         hp = 0;
-       }
-  else if (hp > maxhp)
-       {
-         hp = maxhp; // You can't go higher than your maxhp
-       }
+    if (hp < 0)
+    {
+        hp = 0;
+    }
+    else if (hp > maxhp)
+    {
+        hp = maxhp; // You can't go higher than your maxhp
+    }
 }
 
 void Player::setMaxHP(int m)
 {
-  maxhp = m;
+    maxhp = m;
 
-  if (maxhp < 0)
-       {
-         maxhp = 10;
-       }
-  else if (maxhp > 32000)
-       {
-         maxhp = 32000;
-       }
+    if (maxhp < 0)
+    {
+        maxhp = 10;
+    }
+    else if (maxhp > 32000)
+    {
+        maxhp = 32000;
+    }
 }
 
 void Player::setStrength(int s)
 {
-  strength = s;
-  if (strength < 0)
-       {
-         strength = 1;
-       }
-  else if (strength > 32000)
-       {
-         strength = 32000;
-       }
+    strength = s;
+    if (strength < 0)
+    {
+        strength = 1;
+    }
+    else if (strength > 32000)
+    {
+        strength = 32000;
+    }
 }
 
 void Player::setDefense(int d)
 {
-  defense = d;
+    defense = d;
 
-  if (defense < 0)
-       {
-         defense = 1;
-       }
-  else if (defense > 32000)
-       {
-         defense = 32000;
-       }
+    if (defense < 0)
+    {
+        defense = 1;
+    }
+    else if (defense > 32000)
+    {
+        defense = 32000;
+    }
 }
 
 void Player::setForestFights(int ff)
 {
-  forest_fights = ff;
+    forest_fights = ff;
 
-  if (forest_fights < 0)
-       {
-         forest_fights = 0;
-       }
-  else if (forest_fights > 32000)
-       {
-         forest_fights = 32000;
-       }
+    if (forest_fights < 0)
+    {
+        forest_fights = 0;
+    }
+    else if (forest_fights > 32000)
+    {
+        forest_fights = 32000;
+    }
 }
 
 void Player::setPlayerFights(int pf)
 {
-  player_fights = pf;
+    player_fights = pf;
 
-  if (player_fights < 0)
-       {
-         player_fights = 0;
-       }
-  else if (player_fights > 32000)
-       {
+    if (player_fights < 0)
+    {
+        player_fights = 0;
+    }
+    else if (player_fights > 32000)
+    {
          player_fights = 32000;
-       }
+    }
 }
 
 void Player::setClient(aClient *c)
 {
-  client = c;
+    client = c;
 }
 
 void Player::setMonster(Monster *m)
 {
-  fight = new Monster(m);
+    fight = new Monster(m);
 }
 
 void Player::setMyMaster(Monster *m)
 {
-  master = new Monster(m);
+    master = new Monster(m);
 }
 
 void Player::setBattle(aClient *b)
 {
-  battle = b;
+    battle = b;
 }
 
 void Player::addExp(int e)
 {
-  setExp(getExp() + e);
+    setExp(getExp() + e);
 }
 
 void Player::addGold(int g)
 {
-  setGold(getGold() + g);
+    setGold(getGold() + g);
 }
 
 void Player::addBank(int b)
 {
-  setBank(getBank() + b);
+    setBank(getBank() + b);
 }
 
 void Player::addHP(int h)
 {
-  setHP(getHP() + h);
+    setHP(getHP() + h);
 }
 
 void Player::addMaxHP(int m)
 {
-  setMaxHP(getMaxHP() + m);
+    setMaxHP(getMaxHP() + m);
 }
 
 void Player::addStrength(int s)
 {
-  setStrength(getStrength() + s);
+    setStrength(getStrength() + s);
 }
 
 void Player::addDefense(int d)
 {
-  setDefense(getDefense() + d);
+    setDefense(getDefense() + d);
 }
 
 void Player::addForestFights(int ff)
 {
-  setForestFights(getForestFights() + ff);
+    setForestFights(getForestFights() + ff);
 }
 
 void Player::addPlayerFights(int pf)
 {
-  setPlayerFights(getPlayerFights() + pf);
+    setPlayerFights(getPlayerFights() + pf);
 }
 
 void Player::addLevel(int l)
 {
-  setLevel(getLevel() + l);
+    setLevel(getLevel() + l);
 }
 
 void Player::subtractLevel(int l)
 {
-  setLevel(getLevel() - l);
+    setLevel(getLevel() - l);
 }
 
 void Player::subtractExp(long int e)
 {
-  setExp(getExp() - e); 
+    setExp(getExp() - e); 
 }
 
 void Player::subtractGold(long int g)
 {
-  setGold(getGold() - g);
+    setGold(getGold() - g);
 }
 
 void Player::subtractBank(long int b)
 {
-  setBank(getBank() - b);
+    setBank(getBank() - b);
 }
 
 void Player::subtractHP(int h)
 {
-  setHP(getHP() - h);
+    setHP(getHP() - h);
 }
 
 void Player::subtractMaxHP(int m)
 {
-  setMaxHP(getMaxHP() - m);
+    setMaxHP(getMaxHP() - m);
 }
 
 void Player::subtractStrength(int s)
 {
-  setStrength(getStrength() - s);
+    setStrength(getStrength() - s);
 }
 
 void Player::subtractDefense(int d)
 {
-  setDefense(getDefense() - d);
+    setDefense(getDefense() - d);
 }
 
 void Player::subtractForestFights(int ff)
 {
-  setForestFights(getForestFights() - ff);
+    setForestFights(getForestFights() - ff);
 }
 
 void Player::subtractPlayerFights(int pf)
 {
-  setPlayerFights(getPlayerFights() - pf);
+    setPlayerFights(getPlayerFights() - pf);
 }
 
 void Player::delMonster()
 {
-  if (fight)
-       delete fight;
+    if (fight)
+        delete fight;
 
-  fight = NULL;
+    fight = NULL;
 }
 
 void Player::delMaster()
 {
-  if (master)
-       delete master;
+    if (master)
+        delete master;
 
-  master = NULL;
+    master = NULL;
 }
 
 void Player::delBattle()
 {
-  // Don't delete the other player's aClient
-  battle = NULL;
+    // Don't delete the other player's aClient
+    battle = NULL;
 }
 
+bool Player::operator < (Player &right)
+{
+    if (getLevel() < right.getLevel())
+    {
+        return true;
+    }
+    else if (getExp() < right.getExp())
+    {
+        return true;
+    }
+    else if (getStrength() < right.getStrength() && getDefense() < right.getDefense())
+    {
+        return true;
+    }
+    else
+    {
+        return false;
+    }
+}