aboutsummaryrefslogtreecommitdiffstats
path: root/include/inventory.hpp.bak
diff options
context:
space:
mode:
Diffstat (limited to 'include/inventory.hpp.bak')
-rw-r--r--include/inventory.hpp.bak284
1 files changed, 0 insertions, 284 deletions
diff --git a/include/inventory.hpp.bak b/include/inventory.hpp.bak
deleted file mode 100644
index 533318c..0000000
--- a/include/inventory.hpp.bak
+++ /dev/null
@@ -1,284 +0,0 @@
-#ifndef INVENTORY_H
-#define INVENTORY_H
-
-#include <common.hpp>
-#include <string.h>
-
-#include <texture.hpp>
-#include <events.hpp>
-
-#define DEBUG
-
-class Entity;
-
-/**
- * The base item class
- * This stores the name, width, height, and texture(s)
- */
-class Item {
-private:
- bool beingUsed;
-
-protected:
- std::vector<Entity*> interact;
-
-public:
-
- // what we want to call each item
- std::string name;
-
- // how many pixel tall and white each thing is
- dim2 dim;
-
- // the total amount of this item each slot can have
- uint maxStackSize;
-
- // the array of textures for each frame of animation
- Texturec *tex;
-
- // how much the item is rotated in the hand
- float rotation = 0.0f;
-
- // return if the item is currently in use
- virtual bool inUse();
-
- // set the state of the item
- virtual void setUse(bool use);
-
- // add entities to the list of those being interacted
- virtual void addInteract(Entity* e);
- virtual void addInteract(std::vector<Entity*> e);
-
- /**
- * The function we use to call the child classes ability
- * Note: Since this function is abstract, we HAVE to create one for each
- * child class/type of item.
- */
- virtual int useItem()=0;
-
- virtual Item* clone()=0;
-
- // destructor
- virtual ~Item();
- // return the first texture for the item
- GLuint rtex();
-
- // return the nth texture for the item
- GLuint rtex(int n);
-};
-
-/**
- * Class for blank items, we use this for items that do not have an ability
- * Like Quest or Debug items
- */
-class BaseItem : public Item {
-public:
- // since the items don't have a use, we don't make one for it
- int useItem();
-
- BaseItem* clone();
-
- //~BaseItem(){}
-};
-
-/**
- * Sword class. This is for swords, y'know. Pretty basic stuff
- */
-class Sword : public Item {
-// can't touch this
-private:
- /**
- * How much damage our sword will do
- * notice that it's private to avoid a change
- */
- float damage;
-
- Ray hitbox;
-
-//can touch this
-public:
- /**
- * Lets us return the amount of damage the sword has
- * TODO takes into account enchants and/or buffs/nerfs
- */
- //TODO move
- float getDamage();
-
- // set the damage of the sword
- void setDamage(float d);
-
- /**
- * handles the swinging of the sword
- */
- //TODO move
- int useItem();
-
- Sword* clone();
-};
-
-class Arrow : public Item {
-private:
- // same as sword
- float damage;
-public:
-
- // see sword
- float getDamage();
-
- // sets amount of damage
- void setDamage(float d);
-
- // uses item
- int useItem();
-
- Arrow *clone();
-};
-
-/**
- * Bow class. We use this for shooting bow and arrows
- */
-class Bow : public Item {
-private:
- // same as sword
- float damage;
-public:
- // returns the amount of damage, see sword
- float getDamage();
-
- // sets the amount of damages
- void setDamage(float d);
-
- // handles shooting and arrow curving
- int useItem();
-
- Bow* clone();
-};
-
-/**
- * Raw food class, this will be used for uncooked meats...
- * TODO Eating this may cause health loss, salmonela, mad cow diese
- */
-class RawFood : public Item {
-private:
- // the amount of the health the food heals
- float health;
-
-public:
- // since the health is private, we get how much it is here
- float getHealth();
-
- // TODO chance to hurt
- virtual int useItem();
-
- RawFood* clone();
-};
-
-/**
- * Cooked/Naturale food class
- * When this food is consumed, higher stats are gained than Raw Food and
- * there is no chance of damage/de-buffs
- */
-class Food : public RawFood {
-private:
-public:
-
- // consume food in hand, no chance for de-buff;
- int useItem();
-
- Food* clone();
-};
-
-class ItemLight : public Item {
-private:
- // the color of the light
- Color color;
-public:
- // turn on/off the light
- // TODO
- int useItem();
-
- ItemLight* clone();
-};
-
-/**
- * Currency class. Well, it's used for currency
- */
-class NewCurrency : public Item {
-private:
- // how much the coin is "worth" so to say
- int value;
-public:
- // get the value of the coin
- int getValue();
-
- // TODO maybe play a jingling noise
- // probably won't have a use
- int useItem();
-
- NewCurrency(){}
- ~NewCurrency(){}
-};
-
-/***********************************************************************************
- * OLD STUFF THAT NEEDS TO GET UPDATED *
- **********************************************************************************/
-
-using InventorySlot = std::pair<Item *, unsigned int>;
-
-class Inventory {
-private:
- unsigned int size; //how many slots our inventory has
- unsigned int sel; //what item is currently selected
- int os = 0;
-public:
- std::vector<InventorySlot> Items;
-
- bool invOpen = false; //is the inventory open
- bool invOpening = false; //is the opening animation playing
- bool invHover = false; //are we using the fancy hover inventory
- bool selected = false; //used in hover inventory to show which item has been selected
- bool mouseSel = false; //the location of the temperary selection for the hover inv
- bool usingi = false; //bool used to tell if inventory owner is using selected item
-
- Inventory(unsigned int s); // Creates an inventory of size 's'
- ~Inventory(void); // Free's allocated memory
-
- int useCurrent();
- void currentAddInteract(Entity* e);
- void currentAddInteract(std::vector<Entity*> e);
-
- int addItem(std::string name,uint count);
- int takeItem(std::string name,uint count);
- int hasItem(std::string name);
-
- int useItem(void);
- bool detectCollision(vec2,vec2);
-
- void setSelection(unsigned int s);
- void setSelectionUp();
- void setSelectionDown();
-
- void draw(void); // Draws a text list of items in this inventory (should only be called for the player for now)
-
- const Item* getCurrentItem(void);
-};
-
-void initInventorySprites(void);
-void destroyInventory(void);
-
-const char *getItemTexturePath(std::string name);
-GLuint getItemTexture(std::string name);
-float getItemWidth(std::string name);
-float getItemHeight(std::string name);
-
-#include <entityx/entityx.h>
-
-class InventorySystem : public entityx::System<InventorySystem>, public entityx::Receiver<InventorySystem> {
-public:
- void update(entityx::EntityManager &en, entityx::EventManager &ev, entityx::TimeDelta dt) override;
-
- void configure(entityx::EventManager &em);
- void receive(const MouseScrollEvent &mse);
-};
-
-#endif // INVENTORY_H