]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/item.h
updated the Change log w/ new additions
[irc/gameservirc.git] / gameserv / item.h
index 0caed58fb521c306e6dab92829e00dd17a503fb5..4290e62b875e39917ee8f0b1888dfe0f652b0f42 100644 (file)
@@ -26,18 +26,20 @@ class item
   
   virtual bool use(Player *p) = 0;
   virtual void undo(Player *p) = 0;
-  virtual bool setData(const char *datastr) = 0;
+  virtual bool setData(char *datastr) = 0;
 
   type getType() {return mytype;};
   void setType(type);
+  long int getID() {return id;};
 
   bool operator<(const item &right) const;
   bool operator>(const item &right) const;
   bool operator==(const item &right) const;
   bool operator!=(const item &right) const;
+  item &operator=(const item &right);
   
  protected:
-  string myname;         // Name to use in game & sorting
+  string myname;         // Name to use in game
   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 this item can be used by default
@@ -67,6 +69,10 @@ class itemContainer
   item *getItem() {return myitem;};
   void setItem(item *);
 
+  int getUses() { return myuses; };
+  void setUses(int);
+  void use(Player *p);
+
  private:
   int myuses;              // How many times this item can be used
   item *myitem; 
@@ -80,9 +86,10 @@ class weapon : public item
   weapon(string name, int p=0, int uses = -1, long int identifier=0, int strength=0, int defense=0, int maxhp=0) : item(name, p, uses, strength, defense, maxhp){};
   ~weapon();
 
+  bool setData(char *datastr);
   bool use(Player *p);
   void undo(Player *p);
-  bool setData(const char *datastr);
+
 };
 
 class armor : public item
@@ -93,9 +100,9 @@ class armor : public item
   armor(string name, int p=0, int uses = -1, long int identifier=0, int strength=0, int defense=0, int maxhp=0) : item(name, p, uses, strength, defense, maxhp){};
   ~armor();
 
+  bool setData(char *datastr);
   bool use(Player *p);
   void undo(Player *p);
-  bool setData(const char *datastr);
 };
 
 class potion : public item
@@ -106,11 +113,33 @@ class potion : public item
   potion(string name, int p=0, int uses = 1, long int identifier=0, int strength=0, int defense=0, int maxhp=0, int hp=0, int forest_fights=0, int player_fights=0, int gold=0, int bank=0) : item(name, p, uses, strength, defense, maxhp, hp, forest_fights, player_fights, gold, bank){};
   ~potion();
 
+  bool setData(char *datastr);
   bool use(Player *p);
   void undo(Player *p);
-  bool setData(const char *datastr);
 
  protected:
-  range myrange;
+  range myranges[8];
+};
+
+class tavernItem
+{
+ public:
+  tavernItem();
+  tavernItem(item *, int);
+
+
+  void setItem(item*);
+  item *getItem() { return myItem; };
+
+  void setLevel(int);
+  int getLevel() { return myLevel; };
+
+  bool visible(Player *);
+
+
+ private:
+
+  item *myItem; // The item this actually points to
+  int myLevel;    // The level the item shows up
 };
 #endif