#ifndef INVENTORY_H #define INVENTORY_H /*** Inventory ***/ struct Inventory { int max_weight; int max_slots; int slots_per_row; int x; int y; int selected; // selected number (x+y) int count; // amount of items in inventory struct Tile *owner; // the owner or opener of the inventory struct Tile *last_tile; // last tile in inventory struct Tile *tile; // first tile in inventory }; int inventoryMove(struct Inventory *inventory, int x, int y); int inventoryDrop(struct Inventory *inventory, int selected); int addToInventory(struct Inventory *inventory, struct Tile *tile); struct Tile *inventoryGetSelected(struct Inventory *inventory); /*** Equipment Equipment is a wrapper around Tiles to allow for Equipment Chains. ***/ struct Equipment { struct Tile *tile; struct Equipment *next; struct Equipment *prev; }; // NOTE: originally slots were going to use a string for cross-universe compatibility, e.g., "H1F1N1S2", but this is far more efficient to use, at least at the moment. Perhaps we'll switch later on if deemed necessary. struct Slots { char head; char face; char neck; char shoulder; char arm; char forearm; char hand; char finger; char torso; char waist; char leg; char shin; char foot; }; int checkSlots(struct Slots *target_slots, struct Slots *target_used_slots, struct Slots *required_slots); #endif