timesynk/inventory.h

54 lines
1.3 KiB
C

#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