Hi
Thanks for sharing this.
But I am wondering why you don't want to use arrays, in your implementation you constraint yourself with a given amount of items, 4 in your case, if your game logic requires one more item, then you have to edit all these fsm and test again, whereas if you use array, the list of items can grow without you touching the logic behind your inventory. It's really something I strongly advice to do. and if you must constraint inventory with 4 items mx, you can do so by creating a int variable called "max number of items" can then check if the array contains more or less than this value and act accordingly in the interface to prevent further picks, etc
Bye,
Jean