Index: common/Player.cpp
===================================================================
--- common/Player.cpp	(revision b8601ee571c3981cee30903307a6d54e148d7f7e)
+++ common/Player.cpp	(revision d09fe767422adf7e77284e2598f1403caa72fc49)
@@ -16,4 +16,10 @@
    this->pos.y = this->target.y = 0;
    this->timeLastUpdated = 0;
+
+   this->playerClass = CLASS_NONE;
+   this->maxHealth = 0;
+   this->health = 0;
+   this->attackType = ATTACK_NONE;
+   this->damage = 0;
    this->team = 0;   // blue team by default
    this->hasBlueFlag = false;
@@ -26,9 +32,16 @@
    this->name = p.name;
    this->password = p.password;
+   this->addr = p.addr;
    this->pos.x = p.pos.x;
    this->pos.y = p.pos.y;
    this->target.x = p.target.x;
    this->target.y = p.target.y;
-   this->addr = p.addr;
+   this->timeLastUpdated = p.timeLastUpdated;
+
+   this->playerClass = p.playerClass;
+   this->maxHealth = p.maxHealth;
+   this->health = p.health;
+   this->attackType = p.attackType;
+   this->damage = p.damage;
    this->team = p.team;
    this->hasBlueFlag = p.hasBlueFlag;
@@ -36,4 +49,5 @@
 }
 
+// eventually make this take a PlayerClass argument as well
 Player::Player(string name, string password)
 {
@@ -43,4 +57,10 @@
    this->pos.x = this->target.x = 200;
    this->pos.y = this->target.y = 200;
+
+   this->playerClass = CLASS_NONE;
+   this->maxHealth = 0;
+   this->health = 0;
+   this->attackType = ATTACK_NONE;
+   this->damage = 0;
    this->team = 0;   // blue team by default
    this->hasBlueFlag = false;
@@ -59,8 +79,15 @@
    memcpy(buffer+12, &this->target.x, 4);
    memcpy(buffer+16, &this->target.y, 4);
-   memcpy(buffer+20, &this->team, 4);
-   memcpy(buffer+24, &this->hasBlueFlag, 1);
-   memcpy(buffer+25, &this->hasRedFlag, 1);
-   strcpy(buffer+26, this->name.c_str());
+
+   memcpy(buffer+20, &this->playerClass, 4);
+   memcpy(buffer+24, &this->maxHealth, 4);
+   memcpy(buffer+28, &this->health, 4);
+   memcpy(buffer+32, &this->attackType, 4);
+   memcpy(buffer+36, &this->damage, 4);
+   memcpy(buffer+40, &this->team, 4);
+   memcpy(buffer+44, &this->hasBlueFlag, 1);
+   memcpy(buffer+45, &this->hasRedFlag, 1);
+
+   strcpy(buffer+46, this->name.c_str());
 }
 
@@ -72,8 +99,15 @@
    memcpy(&this->target.x, buffer+12, 4);
    memcpy(&this->target.y, buffer+16, 4);
-   memcpy(&this->team, buffer+20, 4);
-   memcpy(&this->hasBlueFlag, buffer+24, 1);
-   memcpy(&this->hasRedFlag, buffer+25, 1);
-   this->name.assign(buffer+26);
+
+   memcpy(&this->playerClass, buffer+20, 4);
+   memcpy(&this->maxHealth, buffer+24, 4);
+   memcpy(&this->health, buffer+28, 4);
+   memcpy(&this->attackType, buffer+32, 4);
+   memcpy(&this->damage, buffer+36, 4);
+   memcpy(&this->team, buffer+40, 4);
+   memcpy(&this->hasBlueFlag, buffer+44, 1);
+   memcpy(&this->hasRedFlag, buffer+45, 1);
+
+   this->name.assign(buffer+46);
 }
 
@@ -86,4 +120,28 @@
 {
    this->addr = addr;
+}
+
+void Player::setClass(PlayerClass c)
+{
+   switch (c) {
+      case CLASS_WARRIOR:
+         this->playerClass = CLASS_WARRIOR;
+         this->maxHealth = this->health = 100;
+         this->attackType = ATTACK_MELEE;
+         this->damage = 10;
+         break;
+      case CLASS_RANGER:
+         this->playerClass = CLASS_RANGER;
+         this->maxHealth = this->health = 60;
+         this->attackType = ATTACK_RANGED;
+         this->damage = 6;
+         break;
+      case CLASS_NONE:
+         cout << "No clas" << endl;
+         break;
+      dafault:
+         cout << "nvalid class" << endl;
+         break;
+   }
 }
 
Index: common/Player.h
===================================================================
--- common/Player.h	(revision b8601ee571c3981cee30903307a6d54e148d7f7e)
+++ common/Player.h	(revision d09fe767422adf7e77284e2598f1403caa72fc49)
@@ -20,4 +20,17 @@
 class Player {
 public:
+
+   enum PlayerClass {
+      CLASS_NONE,
+      CLASS_WARRIOR,
+      CLASS_RANGER
+   };
+
+   enum AttackType {
+      ATTACK_NONE,
+      ATTACK_MELEE,
+      ATTACK_RANGED
+   };
+
    Player();
    Player(const Player& p);
@@ -28,4 +41,5 @@
    void serialize(char* buffer);
    void deserialize(char* buffer);
+   void setClass(PlayerClass c);
 
    void setId(int id);
@@ -45,4 +59,9 @@
    unsigned long long timeLastUpdated;
 
+   int playerClass;
+   int maxHealth;
+   int health;
+   int attackType;
+   int damage;
    int team; // 0 is blue, 1 is red
    bool hasBlueFlag;
