54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
			
		
		
	
	
			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
 |