]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/item.h
Implemented the definitions for the new items class and added some declarations into...
[irc/gameservirc.git] / gameserv / item.h
index a0a75af3c501bea28c255df69fe4cac429cdeebc..ea2edc370b687930572036258b4764f0d65860bb 100644 (file)
@@ -1,27 +1,33 @@
 #ifndef ITEM_H
 #define ITEM_H
 
-#include "player.h"
+
 #include <string.h>
+#include "player.h"
 
 class item
 {
  public:
-  item(char *name, int p=0, int uses = 1, int m1=0, int m2=0, int m3=0, int m4=0, int m5=0, int m6=0, int m7=0, int m8=0);
-  item(string name, int p=0, int uses = 1, int m1=0, int m2=0, int m3=0, int m4=0, int m5=0, int m6=0, int m7=0, int m8=0);
+  item(char *name=NULL, int p=0, int uses=1, int m1=0, int m2=0, int m3=0, int m4=0, int m5=0, int m6=0, int m7=0, int m8=0);
+  item(string name=NULL, int p=0, int uses=1, int m1=0, int m2=0, int m3=0, int m4=0, int m5=0, int m6=0, int m7=0, int m8=0);
   virtual ~item();
   
   int uses() { return myuses; };
   long int price() { return myprice; };
   
   virtual bool use(Player *p) = 0;
-  virtual void undo(Player *p) = 0;
+  virtual void undo() = 0;
+
+  bool operator<(const item &right) const;
+  bool operator>(const item &right) const;
+  bool operator==(const item &right) const;
+  bool operator!=(const item &right) const;
   
  protected:
-  string myname;
-  long int myprice;
-  int mymodifiers[8];
-  int myuses;
+  string myname;         // Name to use in game & sorting
+  long int myprice;      // How much does this item cost to buy (half to sell)
+  int mymodifiers[8];    // Up to 8 different modifiers handled in the sub-classes
+  int myuses;            // How many times you can use this item
 };
 
 class weapon : public item
@@ -33,7 +39,16 @@ class weapon : public item
   virtual bool use(Player *p);
   virtual void undo(Player *p);
 };
-typedef weapon armor; // Weapons and armor are logically the same if they can both modify strength, defense, and maxhp
+
+class armor : public item
+{
+  armor(char *name, int p=0, int uses = -1, int strength=0, int defense=0, int maxhp=0) : item(name, p, uses, strength, defense, maxhp){};
+  armor(string name, int p=0, int uses = -1, int strength=0, int defense=0, int maxhp=0) : item(name, p, uses, strength, defense, maxhp){};
+  virtual ~armor();
+
+  virtual bool use(Player *p);
+  virtual void undo(Player *p);
+};
 
 class potion : public item
 {